Exemplo, Configurando as Classes do Manipulador para os Descritores de Implementação de Serviços da Web

Este cenário explica como incluir uma classe de rotina de tratamento cliente e servidor em um aplicativo de amostra, WebServicesSamples.ear. As classes de rotina de tratamento exibem mensagens quando recebem um pedido ou resposta para manipular.

O código para a classe de rotina de tratamento de cliente é ilustrada no exemplo a seguir:

package samples;

public class ClientHandler implements javax.xml.rpc.handler.Handler {
    public ClientHandler() { }

public boolean handleRequest(javax.xml.rpc.handler.MessageContext context) {
    System.out.println("ClientHandler: In handleRequest");
    return true; }

public boolean handleResponse(javax.xml.rpc.handler.MessageContext context) {
    System.out.println("ClientHandler: In handleResponse");
    return true; }

public boolean handleFault(javax.xml.rpc.handler.MessageContext context) {
    System.out.println("ClientHandler: In handleFault");
    return true; }

public void init(javax.xml.rpc.handler.HandlerInfo config) { }

public void destroy() {  }

public javax.xml.namespace.QName[] getHeaders() {
    return null; }
}

O código para a classe de rotina de tratamento de servidor é ilustrada no exemplo a seguir:

package sample;
public class ServerHandler implements javax.xml.rpc.handler.Handler {
    public ServerHandler() { }

public boolean handleRequest(javax.xml.rpc.handler.MessageContext context) {
    System.out.println("ServerHandler: In handleRequest");
    return true; }

public boolean handleResponse(javax.xml.rpc.handler.MessageContext context) {
    System.out.println("ServerHandler: In handleResponse");
    return true; }

public boolean handleFault(javax.xml.rpc.handler.MessageContext context) {
    System.out.println("ServerHandler: In handleFault");
    return true; }

public void init(javax.xml.rpc.handler.HandlerInfo config) { }

public void destroy() {  }

public javax.xml.namespace.QName[] getHeaders() {
    return null; }
}
  1. Compile estas classes utilizando:

    [Windows]%JAVA_HOME%\bin\java -extdirs %WAS_EXT_DIRS% ClientHandler.java ServerHandler.java

    [Linux][AIX][HP-UX][Solaris]$JAVA_HOME/bin/java -extdirs $WAS_EXT_DIRS ClientHandler.java ServerHandler.java

  2. Abra uma ferramenta de montagem e importe as duas amostras de arquivos EAR (Enterprise Archive):
    • [Windows]...\installableApps\WebServicesSamples.ear

      [Linux][AIX][HP-UX][Solaris].../installableApps/WebServicesSamples.ear

    • [Windows]...\installableApps\ApplicationClients.ear

      [Linux][AIX][HP-UX][Solaris].../installableApps/ApplicationClients.ear

  3. Importe as classes de Rotina de Tratamento compiladas para os projetos para os módulos de amostra:
    • Importe sample.ClientHandler para o diretório appClientModule do projeto AddressBookClient.
    • Importe sample.ServerHandler para o diretório ejbModule do projeto AddressBookW2JE.
  4. Configure o Client Deployment Descriptor para classes de rotina de tratamento.

    Este tópico explica como configurar o Client Deployment Descriptor para classes de rotina de tratamento fornecidas pelo usuário.

  5. Configure o descritor de implementação webservices.xml para classes de rotina de tratamento.

    Este tópico explica como configurar o descritor de implementação webservices.xml para classes de rotina de tratamento fornecidas pelo usuário.

  6. Salve as alterações e exporte os arquivos EAR.
  7. Desinstale o aplicativo WebServicesSamples.ear de seu servidor se ele já estiver instalado.
  8. Instale o novo aplicativo WebServicesSamples.ear.
  9. Inicie o servidor.
  10. Execute o cliente:

    launchClient ApplicationClients.ear -CCjar=AddressBookClient.jar

    Quando o cliente é executado, a saída do console se parece com o exemplo a seguir. As mensagens das rotinas de tratamento são mostradas em negrito.

    	IBM WebSphere Application Server
    	J2EE Application Client Tool
    	Copyright IBM Corp., 1997-2003
    	WSCL0012I: Processando argumentos da linha de comandos.
    	WSCL0013I: Inicializando o J2EE Application Client 
    	Environment.
    	WSCL0035I: Inicialização do J2EE Application Client 
    	Environment foi concluída.
    	WSCL0014I: Chamando a classe do Application Client 
    	com.ibm.websphere.samples.webservices.addr.AddressBookClient
    	>> Consultando endereço para 'Purdue Boilermaker' utilizando a porta 
    	AddressBookW2JE
    	ClientHandler: Em handleRequest
    	ClientHandler: Em handleResponse
    	>> A resposta é:
                    1 University Drive
                    West Lafayette, IN 47907
                    Phone: (765) 555-4900
    	>> Consultando endereço para 'Purdue Boilermaker' utilizando a porta 
    	AddressBookJ2WE
    	ClientHandler: Em handleRequest
    	ClientHandler: Em handleResponse
    	>> A resposta é:
                    2 University Drive
                    West Lafayette, IN 47907
                    Phone: (765) 555-4900
    	>> Consultando endereço para 'Purdue Boilermaker' utilizando a porta 
    	AddressBookJ2WB
    	ClientHandler: Em handleRequest
    	ClientHandler: Em handleResponse
    	>> A resposta é:
                    3 University Drive
                    West Lafayette, IN 47907
                    Phone: (765) 555-4900
    	>> Consultando endereço para 'Purdue Boilermaker' utilizando a porta AddressBookW2JB
    	ClientHandler: Em handleRequest
    	ClientHandler: Em handleResponse
    	>> A resposta é:
                    4 University Drive
                    West Lafayette, IN 47907
                    Phone: (765) 555-4900

    Para o cliente, a classe de rotina de tratamento é configurada para cada referência de serviço, e não para cada porta. A amostra AddressBook tem quatro portas, mas apenas uma referência de serviço; portanto, ClientHandler manipula os pedidos e respostas de todas as portas.

Quando o arquivo de log do servidor é examinado, ele contém os seguintes dados:

[9/24/03 16:39:22:661 CDT] 4deec1c6 WebGroup      I SRVE0180I: 
[HTTP router for AddressBookW2JE.jar] [/AddressBookW2JE] [Servlet.LOG]: 
AddressBook: init
[9/24/03 16:39:23:161 CDT] 4deec1c6 SystemOut     O ServerHandler: In handleRequest
[9/24/03 16:39:23:211 CDT] 4deec1c6 SystemOut     O ServerHandler: In handleResponse

Resultados

Os descritores de implementação das classes de rotina de tratamento são configurados. Os descritores de implementação são necessários para que o WebSphere Application Server possa processar as solicitações de serviço da Web recebidas.

O Que Fazer Depois

Implemente o arquivo EAR que tenha sido configurado e ativado para os serviços da Web. Em seguida, você pode testar o aplicativo para certificar-se de que ele esteja em execução no ambiente do WebSphere Application Servert.


Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_handlerxmp
Nome do arquivo: rwbs_handlerxmp.html