Este artigo mostra como implementar a solução alternativa de novo terminal de provedor para problemas de interoperabilidade do nível de especificação WS-Security. A abordagem envolve empacotar o aplicativo provedor J2EE 1.4 com dois terminais de serviços da Web: um fornecendo serviço para consumidores J2EE 1.3 e um fornecendo serviço para consumidores J2EE 1.4. A implementação dessa solução alternativa é um exercício básico de programação e empacotamento, que não requer nenhuma infraestrutura de middleware adicional. Esta abordagem escala bem quando há um grande número de aplicativos consumidores de serviços da Web.
Após incluir o novo terminal de provedor no aplicativo de serviço da Web, um número qualquer de aplicativos consumidores de serviços da Web J2EE 1.3 podem usá-lo. Uma observação importante: Esta abordagem é mais bem usada quando as classes de implementação de serviço da Web são JavaBeans ou Enterprise JavaBeans (EJBs) simples. Se a lógica de implementação de serviço da Web estiver contida em um servlet, em um componente Service Component Architecture (SCA) ou em um módulo de mediação Enterprise Service Bus (ESB), então, é mais difícil criar o projeto da Web servlet 2.2 (J2EE 1.3) e empacotá-lo com o aplicativo provedor de serviços da Web.
O esforço necessário para implementar esta abordagem é principalmente trabalho de desenvolvimento de aplicativos, apesar de esta solução alternativa apresentar outro terminal de serviço da Web que deve ser protegido e gerenciado pela equipe de operações. Além de desenvolvedores de aplicativos, esta abordagem também requer o envolvimento de testadores e da equipe de implementação.
Este artigo supõe que os desenvolvedores de aplicativos que irão implementar esta abordagem tenham qualificações básicas para o desenvolvimento de J2EE e serviços da Web.
Este artigo descreve em detalhes como implementar a abordagem de novo terminal de provedor usando um exemplo integralmente implementado que pode ser implementado em seu ambiente. A seção Visão geral da solução descreve a abordagem em detalhes; a seção Desenvolver a solução o guia pelas tarefas de implementação mostrando como nos aplicativos de amostra fornecidos foram desenvolvidos; e a seção Trabalhar com o aplicativo de amostra descreve como customizar e executar os aplicativos de amostra em seu ambiente de tempo de execução.
A Figura 1 mostra uma visualização de tempo de execução detalhadas da solução alternativa de novo terminal de provedor. O aplicativo cliente J2EE 1.3 se comunica com o aplicativo terminal de serviço da Web J2EE 1.3 usando serviços da Web e a especificação WS-Security rascunho 13. O aplicativo cliente J2EE 1.4 se comunica com o aplicativo terminal de serviço da Web J2EE 1.4 usando serviços da Web e a especificação WS-Security versão 1.0. Em seguida, os aplicativos terminais de serviços da Web instanciam as classes de serviço da Web J2EE 1.4 incluídas na biblioteca compartilhada, que, por sua vez, faz chamada RMI/IIOP ao EJB de backend.
Em geral, supomos que você esteja tentando incluir um novo terminal de cliente e provedor J2EE 1.3 em seu provedor J2EE 1.4 existente. O aplicativo provedor J2EE 1.4 inclui um EJB que contém a lógica de negócios. Na Figura 1, as caixas beges representam componentes J2EE 1.4 existentes e as caixas rosas representam novos componentes, que este artigo mostra como criar e integrar ao arquivo EAR do aplicativo provedor J2EE 1.4.
Figura 1. Componentes da solução de novo terminal de provedor
A Tabela 1 mostra as tarefas e produtos necessários para criar a solução.
Tabela 1. Tarefas e produtos necessários para criar a solução
| Tarefas | Ambiente | Funções responsáveis |
|---|---|---|
| 1. Criar o terminal de serviço da Web J2EE 1.3 e a biblioteca compartilhada | IBM® Rational® Application Developer | Desenvolvedor de aplicativos |
| 2. Modificar o terminal de serviço da Web J2EE 1.3. | Rational Application Developer | Desenvolvedor de aplicativos |
| 3. Ligar a biblioteca compartilhada aos terminais de serviços da Web J2EE 1.3 e J2EE 1.4. | Rational Application Developer | Desenvolvedor de aplicativos |
| 4. Ligar o EJB de backend à biblioteca compartilhada, terminais de serviços da Web J2EE 1.3 e J2EE 1.4. | Rational Application Developer | Desenvolvedor de aplicativos |
| 5. Integrar o aplicativo cliente ao cliente de serviço da Web J2EE 1.3. | Rational Application Developer | Desenvolvedor de aplicativos |
| 6. Incluir a segurança. | Rational Application Developer | Desenvolvedor de aplicativos |
| 7. Implementar e realizar teste de unidade da solução em seu ambiente de tempo de execução. | IBM WebSphere® Application Server | Implementador e engenheiro de teste |
A implementação da tarefa 1 envolve o uso de assistentes apropriados no Rational Application Developer para criar terminais de serviços de Web J2EE 1.3 e J2EE 1.4 e uma biblioteca compartilhada. (Encontre um exemplo detalhado disso na seção a seguir Criar a solução.)
A implementação da solução (tarefa 7) requer que os seguintes aplicativos sejam implementados:
- Aplicativos clientes
- Aplicativo provedor, que inclui seguinte:
- Os terminais de serviço da Web J2EE 1.3 e J2EE 1.4
- A biblioteca compartilhada
- O EJB de backend que contém a lógica de negócios para o serviço da Web
Esta seção descreve como modificar um aplicativo provedor de serviços da Web J2EE 1.4 para que possa ser usado com os clientes J2EE 1.3 e J2EE 1.4. Os fragmentos de código da Listagem 1 são obtidos dos aplicativos de amostra e são fornecidos para que seja possível ver como aplicar esta abordagem a seus próprios aplicativos. A Tabela 2 ilustra as tarefas necessárias.
Tabela 2. Etapas e produtos necessários para criar a solução
| Tarefas | Etapas | Ambiente | Funções responsáveis |
|---|---|---|---|
| 1. Criar o terminal de serviço da Web J2EE 1.3 e a biblioteca compartilhada |
| Rational Application Developer | Desenvolvedor de aplicativos |
| 2. Modificar o terminal de serviço da Web J2EE 1.3. |
| Rational Application Developer | Desenvolvedor de aplicativos |
| 3. Ligar a biblioteca compartilhada aos terminais de serviços da Web J2EE 1.3 e J2EE 1.4. |
| Rational Application Developer | Desenvolvedor de aplicativos |
| 4. Ligar o EJB de backend à biblioteca compartilhada, terminais de serviços da Web J2EE 1.3 e J2EE 1.4. |
| Rational Application Developer | Desenvolvedor de aplicativos |
| 5. Integrar o aplicativo cliente ao cliente de serviço da Web J2EE 1.3. | Integre o aplicativo cliente ao cliente de serviço da Web J2EE 1.3. | Rational Application Developer | Desenvolvedor de aplicativos |
| 6. Incluir a segurança. | Configure o aplicativo cliente, os terminais de serviços da Web J2EE 1.3 e J2EE 1.4 para segurança. | Rational Application Developer | Desenvolvedor de aplicativos |
| 7. Implementar e realizar teste de unidade da solução em seu ambiente de tempo de execução. | Implemente e teste os aplicativos da solução empacotados no ambiente de tempo de execução. | WebSphere Application Server | Implementador e engenheiro de teste |
Tarefa 1: Criar o terminal de serviço da Web J2EE 1.3 e a biblioteca compartilhada
Esta seção explica as etapas básicas necessárias para criar o J2EE 1.3 e a biblioteca compartilhada. (Consulte a seção Recursos para links para informações adicionais sobre operações relacionadas a clientes de serviços da Web e assistentes básicas do Rational Application Developer para implementar as etapas a seguir.)
- Crie um novo serviço da Web Java bean de esqueleto J2EE 1.3 a partir de um WSDL
existente usando o Web Service Wizard. Forneça o seguinte no painel Service
Deployment Configuration:
- Selecione 1.3 como a versão de J2EE.
- Forneça um novo projeto da Web como um projeto de serviço e forneça um novo projeto EAR.
- Crie um projeto Java que será usado como uma biblioteca compartilhada, usando o assistente Java fornecido pelo Rational Application Developer.
Tarefa 2: Modificar o terminal de serviço da Web J2EE 1.3
Você está pronto para executar esta etapa após concluir a tarefa 1 conforme mostrado na Tabela 2. Esta seção explica as atualizações necessárias para o terminal de serviço da Web J2EE 1.3. (Consulte Recursos para links para informações adicionais sobre as operações básicas do Rational Application Developer para implementar as etapas abaixo.)
- Exclua o projeto EAR do serviço da Web J2EE 1.3 de seu UTE, porque o Rational Application Developer implementa automaticamente os projetos EAR de serviços da Web para o UTE na criação.
- Remova o projeto da Web do serviço da Web J2EE 1.3 de seu arquivo EAR usando as
instruções a seguir:
- No projeto EAR de serviço da Web J2EE 1.3, abra o arquivo META-INF/application.xml .
- Clique na guia Module e clique no espiral Modules .
- Selecione o arquivo .war do projeto da Web do serviço da Web J2EE 1.3, em seguida, clique em Remove.
- Salve o arquivo application.xml .
- Exclua o projeto EAR do serviço da Web J2EE 1.3 da área de trabalho do Rational Application Developer.
- Inclua o projeto da Web do serviço da Web J2EE 1.3 no arquivo EAR do serviço da
Web J2EE 1.4 existente fazendo o seguinte:
- No projeto EAR de serviço da Web Java bean de esqueleto J2EE 1.4 existente, abra o arquivo META-INF/application.xml .
- Clique na guia Module e clique no espiral Modules .
- Clique em Add.
- Selecione o projeto da Web para o terminal J2EE 1.3, em seguida, clique em Finish.
- Salve o arquivo META-INF/application.xml .
- Modifique o arquivo webservices.xml , localizado no projeto da Web dos
serviços da Web J2EE 1.3, para que a Service endpoint interface na guia Port
Component corresponda aquela especificada no arquivo webservices.xml do projeto
da Web J2EE 1.4 existente. Para implementar isso, faça o seguinte:
- No projeto da Web de serviços da Web J2EE 1.3, abra o arquivo webservices.xml .
- Clique na guia Port Components e clique no espiral Port component implementation details .
- Atualize a Service endpoint interface de
*_Portpara*_PortType. - Salve o arquivo webservices.xml .
- Exclua todas as classes de serviço da Web geradas sob o diretório JavaSource do projeto da Web J2EE 1.3.
Tarefa 3: Ligar a biblioteca compartilhada aos terminais de serviços da Web J2EE 1.3 e J2EE 1.4
Esta seção explica as etapas necessárias para ligar a biblioteca compartilhada, que é um projeto Java, a terminais de serviços da Web J2EE 1.3 e J2EE 1.4 Web. (Consulte Recursos para links para informações adicionais sobre as operações básicas do Rational Application Developer para implementar as etapas abaixo.)
- Inclua o projeto Java no arquivo EAR J2EE 1.4 como uma biblioteca de utilitários
fazendo o seguinte:
- No projeto EAR de serviço da Web Java bean de esqueleto J2EE 1.4, abra o arquivo META-INF/application.xml .
- Clique na guia Module e clique no espiralProject Utility JARs .
- Clique em Add.
- Os aplicativos terminais J2EE 1.3 e J2EE 1.4 precisam acessar classes de serviço
da Web J2EE 1.4 usando a biblioteca compartilhada. Portanto, é necessário mover
todo o código de serviço da Web gerado sob o diretório JavaSource do projeto da
Web J2EE 1.4 para o projeto Java da biblioteca compartilhada. Segue uma lista de
arquivos a serem movidos:
- Uma classe Java para cada tipo de dados
complexo. O nome da classe relacionada do aplicativo de amostra é
SampleOperationResponse. - Um
serializador, um desserializador e uma classe auxiliar para cada tipo de
dados complexo,
*_Ser,*_Desere*_Helper, respectivamente. Nomes de classes relacionadas do aplicativo de amostra sãoSampleOperationResponse_Ser, SampleOperationResponse_DesereSampleOperationResponse_Helper. - Uma interface de serviço e sua implementação,
*_PortTypee*SOAPImpl, respectivamente. Nomes de classes relacionadas do aplicativo de amostra sãoSampleService_PortTypeeSampleServiceSOAPImpl.
A Figura 2 mostra os arquivos relocalizados para o aplicativo de amostra.
Figura 2. Arquivos relocalizados
- Uma classe Java para cada tipo de dados
complexo. O nome da classe relacionada do aplicativo de amostra é
- Os aplicativos terminais J2EE 1.3 e J2EE 1.4 precisam ter conhecimento das
classes de serviço da Web em um arquivo JAR dependente. Portanto, inclua o
projeto Java como uma dependência JAR nos projetos da Web J2EE 1.3 e J2EE 1.4
fazendo o seguinte:
- No projeto EAR de serviço da Web Java bean de esqueleto J2EE 1.4, abra o arquivo META-INF/application.xml .
- Clique na guia Module e clique no espiralProject Utility JARs .
- Clique em Add e selecione o projeto Java.
- Clique em Finish e salve o arquivo application.xml .
- Implemente as seguintes instruções
para cada um dos projetos da Web de serviços da Web J2EE 1.3 e J2EE 1.4:
- Acesse o projeto da Web apropriado, destaque-o e clique no mesmo com o botão direito do mouse.
- Clique em Properties > Java JAR Dependencies.
- Em Java JAR Dependencies, selecione o projeto Java.
- Clique em OK.
Esta seção explica as etapas necessárias para ligar o EJB de backend à biblioteca compartilhada e aos terminais de serviço da Web J2EE 1.3 e J2EE 1.4.
- Inclua o arquivo EJB e EJBClient.jar J2EE 1.4 no arquivo EAR J2EE 1.4 fazendo o
seguinte:
- No projeto EAR de serviço da Web Java bean de esqueleto J2EE 1.4, abra o arquivo META-INF/application.xml .
- Clique no botão Módulo e clique no espiralModules .
- Clique em Add.
- Selecione o projeto EJB e clique em Finish.
- Se o arquivo EJBClient.jar não estiver
incluído no espiral Project Utility JARs, então siga as instruções
abaixo:
- Clique na guia Module e clique no espiral Project Utility JARs .
- Clique em Add.
- Selecione o EJB client projecte clique em Finish.
- Salve as mudanças feitas no arquivo application.xml.
- Inclua o arquivo EJBClient.jar J2EE 1.4 como uma dependência JAR no projeto Java
de bibliotecas compartilhadas fazendo o seguinte:
- Acesse o projeto Java, destaque-o e clique no mesmo com o botão direito do mouse.
- Clique em Properties > Java JAR Dependencies.
- Em Java JAR Dependencies, selecione o EJB client project.
- Selecione o JAR/Módulo apropriado e clique em OK.
- Edite a classe
SOAPImpldas bibliotecas compartilhadas e inclua o código necessário para chamar o EJB de backend J2EE 1.4. As etapas abaixo mostram o uso do recurso EJB Snippets, que insere código para chamar o EJB de backend:- Acesse J2EE perspective.
- Abra o arquivo SampleServiceSOAPImp.java .
- Coloque o cursor sobre o arquivo.
- Clique na guia Snippets na parte inferior esquerda.
- Expanda EJB drawer.
- Dê clique duplo em Call an EJB create method.
- Selecione um bean de sessão apropriado no painel Select EJB Reference Owner, em seguida, clique em Next.
- Clique em New EJB Reference no painel Select Reference.
- Selecione o EJB session bean no painel EJB Reference.
- Escolha Local para Ref Type. Se seu EJB de backend não contiver interfaces locais, siga a tarefa opcional abaixo para incluí-las em seu EJB de backend.
- Clique em Finish em EJB Reference, em seguida, clique em Finish no painel Select Reference.
- Inclua manualmente o código necessário no código
gerado para trabalhar com seu EJB de backend. O fragmento de código na
Listagem 1 mostra uma amostra para o código gerado e incluído
manualmente.
Listagem 1. Fragmento de classe de implementação de serviço da Webpackage com.test; import com.ibm.etools.service.locator.ServiceLocatorManager; import com.test.sessionbean.SampleEJBLocalHome; import com.test.sessionbean.SampleEJBLocal; public class SampleServiceSOAPImpl implements com.test.SampleService_PortType { private final static String STATIC_SampleEJBLocalHome_REF_NAME = "ejb/SampleEJB"; private final static Class STATIC_SampleEJBLocalHome_CLASS = SampleEJBLocalHome.class; public com.test.SampleOperationResponse sampleOperation(java.lang.String sampleOperationRequest) throws java.rmi.RemoteException { SampleEJBLocal aSampleEJBLocal = createSampleEJBLocal(); /**********************************************************************/ /* Begin manually added code to work with the sample back-end EJB */ /**********************************************************************/ SampleOperationResponse sampleOperationResponse = new SampleOperationResponse(); sampleOperationResponse .setServiceResponseString("Request string was: " + sampleOperationRequest); sampleOperationResponse .setServiceUserName("Caller is " + anEJBBBackendLocal.getCallerName()); return sampleOperationResponse; /**********************************************************************/ /* End of manually added code */ /**********************************************************************/ } protected SampleEJBLocal createSampleEJBLocal() { SampleEJBLocalHome aSampleEJBLocalHome = (SampleEJBLocalHome) ServiceLocatorManager .getLocalHome(STATIC_SampleEJBLocalHome_REF_NAME, STATIC_SampleEJBLocalHome_CLASS); try { if (aSampleEJBLocalHome != null) return aSampleEJBLocalHome.create(); } catch (javax.ejb.CreateException ce) { // TODO Auto-generated catch block ce.printStackTrace(); } return null; } }
- Siga as instruções abaixo para incluir Local home interface e Local interface
classes em seu projeto de cliente EJB.
- No projeto EJB de backend, abra o arquivo META-INF/ejb-jar.xml .
- Clique na guia Bean e destaque um bean apropriado.
- Clique no espiral Class and Interface Files , em seguida, clique em Add.
- No painel Add Client View, selecione Add new local and local interfaces.
- Clique em Finish.
- Salve o arquivo META-INF/ejb-jar.xml .
- Agora é possível promover o método EJB de backend relacionado para Local.
- A última etapa para implementar esta tarefa é editar o arquivo web.xml dos
projetos da Web J2EE 1.3 e J2EE 1.4 para incluir a referência de recurso EJB
usada pela classe
*SOAPImpllocalizada na biblioteca compartilhada:- Abra o arquivo WEB-INF/web.xml .
- Clique na guia References , em seguida, clique em Add.
- Selecione a referência EJB no painel Add Reference e clique em Next.
- No painel Add String for Web EJB reference, localize e destaque o bean de sessão.
- Certifique-se de que Ref Type seja Local.
- Clique em Finish e salve o arquivo web.xml .
Tarefa 5. Integrar o aplicativo cliente J2EE 1.3 ao novo terminal de provedor J2EE 1.3
Para implementar esta etapa:
- Consulte Parte 3 desta série para obter explicações detalhadas sobre como integrar um cliente de serviço da Web a seu aplicativo cliente. O artigo demonstra a integração de um cliente de serviço da Web a um bean de sessão. É possível adotar a mesma técnica de integração a seu aplicativo cliente.
- Consulte os links do WebSphere Application Server Information Center e do WebSphere Version 6 Web Services Handbook Development and Deployment em Recursos para obter explicações detalhadas sobre como implementar esta etapa.
Consulte os links do WebSphere Application Server Information Center e do WebSphere Version 6 Web Services Handbook Development and Deployment em Recursos para obter explicações detalhadas sobre como implementar esta etapa.
Tarefa 7: Implementar e realizar teste de unidade da solução em seu ambiente de tempo de execução
Consulte o link de ajuda do produto Rational Application Developer em Recursos para obter explicações detalhadas para implementar esta etapa.
Trabalhar com o aplicativo de amostra
Esta seção explica como implementar os aplicativos de amostra completamente implementado em seu ambiente de tempo de execução. Para implementar as amostras, você precisa do WebSphere Application Server V6.0 ou posterior para executar o aplicativo provedor. O ambiente de tempo de execução deve ser configurado para usar segurança global e para usar autenticação Lightweight Third Party Authentication (LTPA) com a mesma chave LTPA.
A primeira etapa para trabalhar com o aplicativo de amostra é fazer download dos arquivos fornecidos na seção Download . São eles:
- SampleProjects.zip, que inclui código de origem dos aplicativos de amostra.
- SampleService.ear, que é o archive implementável para o aplicativo provedor.
- SampleClient.ear, que é o archive implementável para o aplicativo cliente J2EE 1.3.
Você está pronto para executar uma das ações a seguir após fazer download dos arquivos fornecidos:
- Executar o cliente e o aplicativo provedor em sistemas WebSphere Application Server remotos, conforme mostrado na Figura 1. Siga as tarefas de um a seis para customizar e executar os aplicativos de amostra remotamente, conforme mostrado na lista abaixo.
- Executar o cliente e o aplicativo provedor localmente no mesmo sistema WebSphere Application Server. Ignore as tarefas um a três e siga as tarefas quatro a seis, conforme mostrado na lista abaixo.
Para executar os aplicativos de amostra local ou remotamente, você deve executar as tarefas a seguir:
- Importar o código de origem dos aplicativos de amostra para uma área de trabalho do Rational Application Developer.
- Atualizar os arquivos de origem necessários para refletirem os nomes de hosts de seu ambiente de tempo de execução.
- Empacotar os componentes a solução.
- Implementar os aplicativos no ambiente de tempo de execução.
- Configurar a segurança no WebSphere Application Server.
- Executar os aplicativos de amostra.
O restante desta seção descreve essas tarefas em detalhes.
Tarefa 1: Importar o código de origem dos aplicativos de amostra
O código de origem dos aplicativos de amostra, que são compostos por vários artefatos mostrados na Tabela 3, está contido no arquivo SampleProjects.zip (consulte a seção Download . Nós usamos o recurso de exportação Project Interchange do Rational Application Developer para exportar o código de origem da solução para o arquivo SampleProjects.zip. Esse recurso ajuda a importar o código de origem para outra área de trabalho do Rational Application Developer facilmente; veja como:
- Clique em File > Import e selecione Project Interchange.
- Clique em Next, forneça o local do arquivo compactado, em seguida, selecione os projetos fornecidos.
Tabela 3. Lista de artefatos do aplicativo de amostra
| Componente | Tipo de projeto | Nome do projeto | Descrição |
|---|---|---|---|
| Arquivo EAR do provedor de serviços da Web | Arquivo EAR | SampleService.ear | Este projeto inclui o arquivo application.xml. |
| Terminal de serviço da Web J2EE 1.3 | Web | SampleService13Web | Este projeto inclui os arquivos web.xml e webservices.xml. |
| Terminal de serviço da Web J2EE 1.4 | Web | SampleService14Web | Este projeto inclui os arquivos web.xml e webservices.xml. |
| Biblioteca compartilhada | Java | SampleServiceJAR | Este projeto inclui as classes de serviço da Web J2EE 1.4 a seguir:
|
| EJB de backend | EJB | SampleEJBService | Este projeto inclui o bean de sessão EJB
SampleEJBBean. |
| EJB de backend | Java | SampleEJBServiceClient | Este projeto inclui as seguintes classes:
|
| Cliente J2EE 1.3 | Web | SampleClient | Este projeto inclui os dois tipos de classes a seguir:
|
| Cliente J2EE 1.3 | Arquivo EAR | SampleClient.ear | Este projeto inclui os arquivos web.xml e webservices.xml. |
Execute as etapas a seguir:
- O código de origem do aplicativo cliente deve ser customizado para refletir os
nomes de hosts de seu ambiente de tempo de execução. Forneça um nome de host em
dois dos arquivos, conforme mostrado na lista a seguir. Como uma conveniência,
procure a cadeia de caractere
localhoste substitua-a por um nome de host apropriado.- A classe de localizador localizada no
projeto SampleClient,
com.test.SampleService_ServiceLocator.java - O arquivo WSDL localizado no diretório META-INF/wsdl do projeto SampleClient, sampleService.wsdl
- A classe de localizador localizada no
projeto SampleClient,
- Após customizar os arquivos necessários, você estará pronto para criar um pacote implementável para o servlet. Implemente o arquivo SampleService.ear fornecido para o aplicativo provedor de serviços da Web no WebSphere Application Server, assim como o servlet para o cliente, SampleClient.ear.
Tarefa 5. Executar a solução de amostra
Você agora está pronto para executar a solução seguindo estas etapas:
- Execute o servlet J2EE 1.3, que exibe a página de entrada, conforme mostrado na Figura 3.
- Quando for desafiado a autenticar no servlet, autentique usando qualquer ID de usuário que faça parte do registro usado para segurança global.
- Forneça uma cadeia de caractere de entrada no campo exibido na página, em
seguida, clique no botão Send .
Figura 3. Página de entrada
O servlet chama o terminal de serviço da Web J2EE 1.3 com a cadeia de caractere de entrada a ser fornecida ao EJB de backend. Em seguida, exibe o resultado retornado do EJB de backend em uma página de saída, conforme mostrado na Figura 4:
Figura 4. Página de saída
O ID do usuário exibido na página de saída deve ser o mesmo usado para autenticação no servlet. Se esse for o caso, então pode estar confiante de que a identidade do usuário do cliente está sendo propagada com sucesso ao aplicativo provedor usando WS-Security.
Este artigo o guiou por como usar diversos terminais de serviços da Web para lidar com o problema de interoperabilidade do nível de especificação WS-Security e fornecer exemplos mostrando como lidar com algumas armadilhas em torno de trabalhar com classes de serviços da Web comuns. Como você aprendeu, este método é principalmente um exercício de desenvolvimento de aplicativo direto. Esta abordagem é mais adequada para situações de ambiente de simulação, teste ou prova de conceito, em que a atualização de aplicativos consumidores de serviços da Web para J2EE 1.4 não é uma opção e em que o custo de configurar um proxy de middleware é proibitivo.
| Descrição | Nome | Tamanho | Método de download |
|---|---|---|---|
| Sample project files for this article | SampleProjects.zip | 72KB | HTTP |
| Sample project files for this article | SampleService.ear | 74KB | HTTP |
| Sample project files for this article | SampleClient.ear | 104KB | HTTP |
Informações sobre métodos de download
Aprender
- Verifique os outros artigos desta série:
- "Parte 1: Visão Geral do Problema e Quatro Soluções Alternativas Disponíveis" (developerworks, maio de 2007) apresenta alguns dos problemas comuns causados por incompatibilidades entre diferentes versões da especificação WS-Security. Também apresenta algumas soluções para esses problemas e compara os benefícios e desvantagens de cada.
- "Parte 2: Usando o Recurso WebSphere Web Services Gateway" (developerWorks, julho de 2007) mostra como usar o Web Services Gateway como um proxy seguro entre um consumidor de serviços da Web J2EE 1.3 e um aplicativo provedor de serviços da Web J2EE 1.4.
- "Parte 3: Usando o Proxy EJB" (developerWorks, setembro de 2007) fornece explicações detalhadas sobre como integrar um cliente de serviço da Web a seu aplicativo cliente e demonstra como integrar um cliente de serviço da Web a um bean de sessão.
- Visite o WebSphere Application Server Information Center para obter informações
sobre:
- Conceitos de EJB.
- Implementação de arquivos EAR.
- Serviços da Web e conceitos de segurança.
- Redbooks IBM®: WebSphere Version 6 Web Services Handbook Development and Deployment
fornecer uma boa fonte de informações sobre conceitos e recursos do aplicativo de
serviços da Web.
- Leia Step 2 no artigo "Web services security with WebSphere Application Server V6 -- Part 4"
(developerWorks, julho de 2006) para obter informações centralizadas sobre como
proteger um serviço da Web usando o token LTPA.
- Visite a ajuda do produto Rational Application
Developer , que fornece informações sobre os seguintes tópicos:
- Conceitos do ambiente de desenvolvimento integrado Java
- Desenvolvimento e conceitos de EJB
- Desenvolvimento e conceitos de serviços da Web
- A zona de serviços da Web e SOA no IBM
developerWorks hospeda centenas de artigos informativos e tutoriais introdutórios,
intermediários e avançados sobre como desenvolver aplicativos de serviços da
Web.
- O Web site do IBM SOA oferece uma visão
geral de SOA e como a IBM pode ajudá-lo a chegar lá.
- Fique por dentro dos eventos técnicos e webcasts do
developerWorks. Consulte especialmente os resumos de instruções técnicas
sobre SOA e serviços da Web:
- Get started on SOA with WebSphere's proven, flexible entry points
- Building SOA solutions and managing the service lifecycle
- SCA/SDO: To drive the next generation of SOA
- SOA reuse and connectivity
- Confira no developerWorks SOA development and best practices community
space.
- Procure livros sobre estes e outros tópicos técnicos
na Safari bookstore.
- Confira uma rápida demo on demand sobre serviços da
Web.
- Obtenha um feed RSS para esta série. (Descubra mais sobre RSS.)
Obter produtos e tecnologias
- Faça download de versões de
avaliação gratuitas do WebSphere Application Server e Rational Application
Developer.
- Inove em seu próximo projeto
de desenvolvimento com o software de avaliação da IBM, disponível
para download ou em DVD.
Discutir
- Participar do fórum de discussão.
- Participe da comunidade do developerWorks
participando dos blogs do developerWorks, incluindo os
blogs relacionados a SOA e a serviços da Web a seguir:
- Service Oriented Architecture -- Off the Record com Sandy Carter
- Best Practices in Service-Oriented Architecture com Ali Arsanjani
- WebSphere SOA and J2EE in Practice com Bobby Woolf
- Building SOA applications with patterns com Dr. Eoin Lane
- Client Insights, Concerns and Perspectives on SOA com Kerrie Holley
- Service-Oriented Architecture and Business-Level Tooling com Simon Johnston
- SOA, ESB and Beyond com Sanjay Bose
- SOA, Innovations, Technologies, Trends...and a little fun com Mark Colan

Zeynep Latif é Software Engineer na organização Scenario Analysis Lab do IBM Software Group, localizada no Research Triangle Park, Carolina do Norte. Suas áreas de conhecimento incluem portlet e desenvolvimento de aplicativo J2EE, IBM Rational Application Developer e IBM Rational Software Architect para designa de aplicativo.

David Leigh é Senior Software Engineer na organização Scenario Analysis Lab do IBM Software Group, localizada no Research Triangle Park, Carolina do Norte. Suas áreas de conhecimento incluem o IBM WebSphere Process Choreographer, segurança de aplicativo e servidor, alta disponibilidade, monitoramento, IBM AIX® e Linux®.