Beispiel: Handlerklassen für Web-Service-Implementierungsdeskriptoren konfigurieren

Dieses Szenario zeigt, wie einer Beispielanwendung mit dem Namen WebServicesSamples.ear einfache Handlerklassen für Client und Server hinzugefügt werden. Die Handlerklassen zeigen Nachrichten an, wenn eine zu bearbeitende Anforderung oder Antwort empfangen wird.

Das folgende Beispiel zeigt den Code für die Client-Handlerklasse:

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

Das folgende Beispiel zeigt den Code für die Server-Handler-Klasse:

	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. Kompilieren Sie diese Handlerklassen mit dem folgenden Befehl:

    [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. Öffnen Sie ein Assembliertool, und importieren Sie die zwei EAR-Beispieldateien:
    • [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. Importieren Sie die kompilierten Handlerklassen in die Projekte für die Beispielmodule:
    • Importieren Sie sample.ClientHandler in das Verzeichnis appClientModule des Projekts AddressBookClient.
    • Importieren Sie sample.ServerHandler in das Verzeichnis ejbModule des Projekts AddressBookW2JE.
  4. Clientimplementierungsdeskriptor für die Handlerklassen konfigurieren.

    Dieser Artikel beschreibt, wie Sie den Clientimplementierungsdeskriptor für eigene Handlerklassen konfigurieren.

  5. Implementierungsdeskriptor webservices.xml für Handlerklassen konfigurieren.

    Dieser Artikel beschreibt, wie Sie den Implementierungsdeskriptor webservices.xml für eigene Handlerklassen konfigurieren.

  6. Speichern Sie Ihre Änderungen und exportieren Sie die EAR-Dateien.
  7. Deinstallieren Sie die Anwendung WebServicesSamples.ear in Ihrem Server, wenn diese bereits installiert ist.
  8. Installieren Sie die neue Anwendung WebServicesSamples.ear.
  9. Starten Sie den Server.
  10. Führen Sie den Client aus:

    launchClient ApplicationClients.ear -CCjar=AddressBookClient.jar

    Wenn der Client ausgeführt wird, gleicht die Konsolausgabe dem folgenden Beispiel. Die Nachrichten der Handler sind in Fettschrift hervorgehoben.

    	IBM WebSphere Application Server		J2EE Application Client Tool
    		Copyright IBM Corp., 1997-2003
    		WSCL0012I: Die Befehlszeilenparameter werden verarbeitet.
    		WSCL0013I: Die Umgebung des J2EE-Anwendungsclients wird
    	initialisiert.
    		WSCL0035I: Die Initialisierung der Umgebung des
     J2EE-Anwendungsclients ist abgeschlossen.
    		WSCL0014I: Der Anwendungsclient
    	com.ibm.websphere.samples.webservices.addr.AddressBookClient
     wird aufgerufen.
    		>> 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

    Beim Client wird die Handlerklasse für jede Servicereferenz und nicht für jeden Port konfiguriert. Das Beispiel AddressBook hat vier Ports, aber nur eine Servicereferenz. Deshalb bearbeitet der ClientHandler Anforderungen und Antworten an allen Ports.

Wenn Sie das Serverprotokoll untersuchen, werden Sie Daten wie die folgenden finden:

[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

Ergebnisse

Die Implementierungsdeskriptoren für Handlerklassen sind konfiguriert. Implementierungsdeskriptoren sind erforderlich, damit WebSphere Application Server die eingehenden Web-Service-Anforderungen bearbeiten kann.

Nächste Schritte

Implementieren Sie die EAR-Datei, die für Web-Services konfiguriert und aktiviert wurde. Anschließend können Sie die Anwendung testen, um sicherzustellen, dass Sie in der Umgebung von WebSphere Application Server ausgeführt werden kann.


Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_handlerxmp
Dateiname:rwbs_handlerxmp.html