Exemple : Configuration des classes de gestionnaire pour les descripteurs de déploiement de services Web

Le présent scénario explique comment ajouter un client et des classes de gestionnaire de serveurs à un modèle d'application nommé WebServicesSamples.ear. Les classes de gestionnaire affichent des messages lorsqu'elles reçoivent une demande ou une réponse à traiter.

Le code de la classe de gestionnaire client est illustré dans l'exemple suivant :

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; }
}

Le code de la classe de gestionnaire serveur est illustré dans l'exemple suivant :

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. Compilez ces classes à l'aide de :

    [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. Lancez un outil d'assemblage et importez les deux fichiers d'archive EAR de beans enterprise :
    • [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. Importez les classes de gestionnaire compilées dans les projets pour les modules exemple :
    • Importez sample.ClientHandler dans le répertoire appClientModule du projet AddressBookClient.
    • Importez sample.ServerHandler dans le répertoire ejbModule du projet AddressBookW2JE.
  4. Configurez le descripteur de déploiement client pour les classes de gestionnaire.

    Cette rubrique explique comment configurer le descripteur de déploiement client pour des classes de gestionnaire fournies par l'utilisateur.

  5. Configurez le descripteur de déploiement webservices.xml pour des classes de gestionnaire.

    La présente rubrique explique comment configurer le descripteur de déploiement webservices.xml pour des classes de gestionnaire fournies par l'utilisateur.

  6. Sauvegardez vos modifications et exportez les fichiers EAR.
  7. Désinstallez l'application WebServicesSamples.ear de votre serveur si elle est déjà installée.
  8. Installez la nouvelle application WebServicesSamples.ear.
  9. Démarrez le serveur.
  10. Exécutez le client :

    launchClient ApplicationClients.ear -CCjar=AddressBookClient.jar

    Lorsque le client s'exécute, la sortie de la console est similaire à ce qui est illustré dans l'exemple suivant. Les messages provenant des gestionnaires sont affichés en gras.

    	IBM WebSphere Application Server
    	J2EE Application Client Tool
    	Copyright IBM Corp., 1997-2003
    	WSCL0012I: Processing command line arguments.
    	WSCL0013I: Initializing the J2EE Application Client 
    	Environment.
    	WSCL0035I: Initialization of the J2EE Application Client 
    	Environment has completed.
    	WSCL0014I: Invoking the Application Client class 
    	com.ibm.websphere.samples.webservices.addr.AddressBookClient
    	>> Querying address for 'Purdue Boilermaker' using port 
    	AddressBookW2JE
    	ClientHandler: In handleRequest
    	ClientHandler: In handleResponse
    	>> Response is:
            1 University Drive
            West Lafayette, IN 47907
            Phone: (765) 555-4900
    	>> Querying address for 'Purdue Boilermaker' using port 
    	AddressBookJ2WE
    	ClientHandler: In handleRequest
    	ClientHandler: In handleResponse
    	>> Response is:
            2 University Drive
            West Lafayette, IN 47907
            Phone: (765) 555-4900
    	>> Querying address for 'Purdue Boilermaker' using port 
    	AddressBookJ2WB
    	ClientHandler: In handleRequest
    	ClientHandler: In handleResponse
    	>> Response is:
            3 University Drive
            West Lafayette, IN 47907
            Phone: (765) 555-4900
    	>> Querying address for 'Purdue Boilermaker' using port AddressBookW2JB
    	ClientHandler: In handleRequest
    	ClientHandler: In handleResponse
    	>> Response is:
            4 University Drive
            West Lafayette, IN 47907
            Phone: (765) 555-4900

    Pour le client, la classe de gestionnaire est configurée pour chaque référence de service, et non pour chaque port. L'exemple AddressBook comporte quatre ports mais une seule référence de service, c'est pourquoi l'élément ClientHandler gère les demandes et les réponses sur tous les ports.

Lorsque le fichier journal du serveur est examiné, il contient les données suivantes :

[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

Résultats

Les descripteurs de déploiement des classes de gestionnaire sont configurés. Les descripteurs du déploiement sont obligatoires pour que WebSphere Application Server puisse traiter les demandes de services web entrantes.

Que faire ensuite ?

Déployez le fichier EAR qui a été configuré et activé pour les services Web. Vous pouvez ensuite tester l'application pour vérifier qu'elle fonctionne dans l'environnement WebSphere Application Server.


Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_handlerxmp
Nom du fichier : rwbs_handlerxmp.html