Uma opção alternativa a considerar é a ferramenta de serviços da Web do Rational Application Developer que permite criar um serviço da Web em torno de um EJB.
Nota: Consulte as informações no seguinte site antes de tentar migrar utilizando esse método: http://publib.boulder.ibm.com/infocenter/rtnl0600/topic/
com.ibm.etools.webservice.was.creation.ejb.ui.doc/tasks/twsejbw.html
Nota: Esta opção requer que o tempo de execução de um serviço da Web seja configurado através do WebSphere Integration
Developer antes de chamar o assistente de serviço da Web.
Para criar um serviço da Web em torno de um EJB, siga estas etapas:
- Clique com o botão direito do mouse no projeto do aplicativo corporativo que é o contêiner para o EJB em torno do qual você está criando um serviço.
- Selecione Propriedades, vá para as propriedades do Servidor e certifique-se de que Tempo de execução de destino esteja definido para WebSphere
Process Server v6.0 e Servidor padrão esteja definido para o WebSphere Process Server v6.0 instalado.
- Inicie o servidor de teste e implemente seu aplicativo para o servidor e certifique-se de que ele seja iniciado com êxito.
- Na perspectiva J2EE, expanda o Projeto EJB na visualização Explorador de Projeto. Expanda o Descritor de Implementação e, em seguida, a categoria Beans de Sessão. Selecione o bean em torno do qual deseja gerar o serviço da Web.
- Clique com o botão direito do mouse e selecione .
- Para Tipo de Serviço da Web, selecione Serviço da Web EJB e desmarque a opção Iniciar serviço da Web no projeto da Web, a menos que deseje implementar o serviço da Web diretamente. Clique em Avançar.
- Certifique-se de que o EJB no qual clicou com o botão direito do mouse esteja selecionado aqui e clique em Avançar.
- Agora você deve configurar as opções de implementação de serviço. Clique no botão Editar….
Para o tipo de servidor, escolha WPS Server v6.0 e para o tempo de execução do serviço da Web, escolha IBM WebSphere e J2EE versão 1.4. Se você não puder selecionar uma combinação válida fazendo isso, consulte a seção "Preparando-se para a Migração" para obter informações sobre a migração de projetos J2EE para o nível v1.4. Clique em OK.
- Para o projeto Serviço, digite o nome do projeto EJB que contém o EJB. Selecione também
o projeto EAR apropriado. Clique em Avançar. Observe que você poderá precisar esperar vários minutos.
- No painel Configuração EJB do Serviço da Web, selecione o projeto do roteador adequado a ser utilizado (escolha o nome do projeto da Web do roteador que gostaria que fosse criado e esse projeto será incluído no mesmo aplicativo corporativo do EJB original). Selecione o transporte desejado (SOAP sobre HTTP ou SOAP
sobre JMS). Clique em Avançar.
- Selecione o arquivo WSDL que conterá as definições do WSDL. Escolha os métodos que gostaria de expor no serviço da Web e escolha o estilo/codificação adequados (Document/Literal, RPC/Literal ou RPC/Encoded). Selecione a opção Definir
Mapeamento Customizado do Pacote para Espaço de Nomes e selecione um espaço de nomes que seja exclusivo para o EJB que está sendo migrado para todos os pacotes Java utilizados pelo EJB (o espaço de nomes padrão
será exclusivo para o nome do pacote que pode causar conflitos se você criar outro Serviço da
Web que utiliza as mesmas classes Java). Conclua os outros parâmetros, se necessário.
Existem limitações para cada uma das combinações de estilo/codificação.
Consulte as limitações para obter informações adicionais: http://publib.boulder.ibm.com/infocenter/rtnl0600/topic/com.ibm.etools.webservice.doc/ref/rlimit.html
- Clique em Avançar e, no painel Mapeamento de Pacote de Serviço da Web para Espaço de Nomes, clique no botão
Incluir e, na linha criada, digite o nome do pacote do
EJB, em seguida, o espaço de nomes customizado que identifica exclusivamente este EJB. Continue
incluindo mapeamentos para todos os pacotes Java utilizados pela interface EJB.
- Clique em Avançar. Observe que você poderá precisar esperar vários minutos.
- Clique em Concluir.Depois de concluir o assistente, você deverá copiar o arquivo WSDL gerado, que descreve o serviço EJB para o projeto de módulo do Business Integration, se o projeto de serviço for um consumidor do serviço EJB. Ele pode ser localizado no projeto da Web do roteador gerado na pasta WebContent/WEB-INF/wsdl. Atualize/reconstrua o projeto de módulo do Business Integration.
- Mude para a perspectiva Business Integration e expanda o módulo migrado e, em seguida, a categoria lógica Portas do Serviço da Web.
- Selecione a porta que foi gerada nas etapas anteriores e arraste-a e solte-a sobre o Editor de Montagem e selecione para criar uma Importação com Ligação de Serviço da Web. Selecione a interface WSDL do EJB, se for solicitado.
Agora o componente SCA que consumiu o EJB na 5.1 pode ser ligado a essa Importação para completar as etapas manuais de migração da religação.
Se você tiver utilizado uma abordagem de cima para baixo no WebSphere Studio Application Developer
Integration Edition, gere um esqueleto EJB a partir de uma definição WSDL e, em seguida, siga estas etapas:
- Crie um novo projeto da Web e copie o arquivo WSDL do qual gostaria de gerar o esqueleto EJB para a pasta de origem desse projeto da Web.
- Clique com o botão direito do mouse no arquivo WSDL que contém o PortType do qual você deseja gerar um esqueleto EJB e selecione .
- Escolha o tipo de serviço da Web Serviço da Web EJB de Esqueleto e complete o assistente.
Depois de concluir o assistente, você deve ter um EJB que implemente a interface de serviço e não seja dependente de APIs do WSIF.
Observe que a interface poderá ser ligeiramente diferente da interface 5.1 e você poderá precisar inserir um componente Mediação de Interface entre o consumidor da 5.1 e a nova Importação.
Para fazer isso, clique na ferramenta wire no Editor de Montagem e ligue o componente de origem SCA a essa nova Importação com Ligação de Serviço da Web. Como as interfaces são diferentes, você será avisado: Os nós de origem e destino não têm interfaces correspondentes.
Escolha criar um mapeamento de interface entre o nó de origem e de destino. Dê um clique duplo no componente de mapeamento que foi criado no Editor de Montagem. Isso abrirá o editor de mapeamento. Consulte o Information
Center para obter instruções sobre a criação de um mapeamento de interface.
Depois de concluir isso, você deverá religar o serviço EJB. Não deve haver nenhuma referência, portanto, você precisa apenas religar a interface do componente Java:
- Se esse serviço for chamado por um processo de negócios no mesmo módulo, então, crie uma ligação da referência do processo de negócios adequada para esse componente EJB.
- Se esse serviço for chamado por um processo de negócios em outro módulo, crie uma Exportação com Ligação SCA e, a partir do outro módulo, arraste e solte essa exportação no Editor de Montagem desse módulo para criar a Importação com Ligação SCA correspondente. Ligue a referência do processo de negócios adequada àquela Importação.
- Se esse serviço tiver sido publicado no WebSphere Studio Application Developer Integration Edition para expô-lo externamente, então, consulte a seção "Migração de Serviço Não-BPEL de Entrada" para obter instruções sobre como publicar novamente o serviço.