Esta regra detecta a presença de serviços da web JAX-RPC com base nos seguintes critérios:
- A presença do arquivo, web-services.xml
- A presença do arquivo, weblogic-webservices.xml
e do arquivo webservices.xml na mesma pasta
Correção Rápida
No scanner de origem, esta regra produz um script Ant com tarefas IBM(R) Ant específicas. Essas tarefas geram serviços da web JAX-RPC que são baseados nos descritores de implementação de serviços da web J2EE do WebLogic. A correção rápida varre
os descritores de implementação de serviços da web e produz um script Ant se um arquivo gerado pelo IBM Ant não existe na
pasta raiz do projeto. O script contém as tarefas IBM Ant para gerar os serviços da web JAX-RPC.
Propriedades da regra
Você deve fornecer os valores corretos para as propriedades da regra. Para alterar os valores das propriedades para esta regra,
selecione a regra na janela Configurações do Analisador de Software. Então utilize os campos presentes na guia Propriedades. As propriedades desta regra são:
- Nome do script Ant gerado
:
Especifica o nome do novo script Ant a ser gerado. O nome do script
deve ser um nome de arquivo válido. O valor não deve incluir nenhuma barra normal ou invertida. O script gerado estará na pasta-raiz do projeto.
Valor-padrão: build-ibm-ws.xml
- Nome da pasta de geração:
Especifica o nome da pasta na qual os artefatos de geração irão residir. O valor não deve incluir nenhuma barra normal ou invertida. A pasta de geração estará na pasta-raiz do projeto.
Valor-padrão: ibm-ws-gen
Caminho da classe Ant
O caminho da classe ant é calculado a partir do projeto Eclipse.
É importante verificar se todos os elementos necessários para
compilação estão no caminho da classe do Eclipse.
Os serviços JAX-RPC que estão definidos no arquivo web-services.xml
Com base nas informações e no tipo de serviços definido no web-services.xml, um script Ant
e possivelmente o código Java adicional que representa a interface do terminal de serviço da web é gerado
para reproduzir o serviço JAX-RPC.
- Componentes suportados
Apenas enterprise beans de Sessão Stateless (<stateless-ejb>) e componentes Java(R) (<java-class>)
podem ser reconhecidos e convertidos.
- Componentes do EJB staleless:
O arquivo JAR do EJB (Enterprise JavaBeans(TM)), conforme definido no atributo de caminho do
elemento <ejb-link>, deve existir no projeto. A correção rápida varre o arquivo JAR do
EJB e gera uma nova classe SEI (Service Endpoint Interface) com base na classe remota do EJB.
As interfaces SEI diferem das interfaces remotas do EJB nas quais a classe deve se estender java.rmi.Remote e cada método deve gerar a exceção,
java.rmi.RemoteException.
A correção rápida usa o reflexo Java na interface remota EJB para gerar a nova SEI. Por isso,
o caminho da classe do projeto do Eclipse deve ser configurado com todas as classes necessárias, arquivos
JAR, pastas e assim por diante, para permitir que a correção rápida carregue corretamente a classe remota EJB.
A SEI é gerada na pasta sei, dentro da pasta de geração, conforme fornecido pelo usuário
nas propriedades da regra. O pacote da SEI corresponde ao pacote da interface remota
EJB e o nome da SEI será a mesma que a interface remota EJB com a palavra SEI anexada a ele. Além disso, a nova pasta da SEI
é incluída no caminho da classe do projeto.
- Componentes da classe Java:
De forma semelhante aos componentes EJB, a correção rápida gera uma SEI (Service Endpoint Interface)
a partir da classe Java que está definida no atributo <class-name>.
- Destinos Ant gerados:
O script Ant gerado contém destinos para gerar o arquivo WSDL e o
serviço JAX-RPC baseado na nova SEI que foi criada durante a correção rápida.
O destino de geração de WSDL terá o nome genWSDL_ssss, em que ssss é o nome do serviço JAX-RPC
que foi fornecido no campo de atributo name do elemento <web-service>.
Os destinos de geração de serviço têm o nome genService_pppp, em que pppp é o nome do componente a partir do atributo name
do elemento <stateless-ejb> ou <java-class>.
A correção rápida não utiliza as informações fornecidas em outros elementos, como <handlers-chain>, <types>,
<operations>, <security> e assim por diante.
Serviços JAXRPC definidos no arquivo webservices.xml
Com base nas informações e nos tipos de serviços definidos no arquivo webservices.xml , um
script Ant é gerado para reproduzir o Serviço JAX-RPC.
- Destinos Ant gerados:
O script Ant gerado contém destinos para gerar o arquivo WSDL e o serviço JAX-RPC.
O destino de geração do WSDL é gerado apenas se a correção rápida não puder localizar
o arquivo WSDL conforme definido no elemento <wsdl-file>.
Se ele for criado, o destino da geração do WSDL possui o nome genWSDL_ssss, em que ssss
é o nome do serviço conforme definido no elemento <webservice-description-name>.
Os destinos de geração de serviço terão o nome genService_pppp, em que pppp é o nome
da porta conforme definido pelo elemento <port-component-name>.
Tarefas Ant do IBM WebSphere Application Server
O IBM WebSphere(R) Application Server inclui as tarefas Ant como java2wsdl e wsdl2java para gerar os
artefatos necessários para os serviços JAX-RPC. O script Ant gerado utiliza essas tarefas para construir
o serviço.
Informações adicionais sobre essas tarefas podem ser obtidas na
documentação do WebSphere Application Server.
Executando o script Ant
Depois da correção rápida produzir o script Ant, visualize o script e inclua customizações adicionais se necessário.
Consulte a documentação do servidor de aplicativos sobre customizações adicionais para tarefas do IBM Ant.
Deve-se executar o script usando as ferramentas Ant
incluídas com o WebSphere Application Server. O script IBM Ant
pode ser executado a partir de:
- WAS_HOME\bin\ws_ant.bat nos sistemas operacionais Windows(R)
- WAS_HOME\bin\ws_ant.sh nos sistemas operacionais UNIX(R)
Exemplo: c:\IBM\AppServer\bin\ws_ant.bat -f c:\eclipse\MyProject\ibm-ws-gen.xml genService_TestService
Depois dos destinos Ant serem executados, os artefatos produzidos residem na pasta de geração. O usuário pode então inspecionar o código gerado e os descritores de implementação e, em seguida, incluir esses artefatos em seus módulos.