Asynchronen JAX-WS-Antwortlistener verwenden

Java API for XML-based Web Services (JAX-WS) enthält einen asynchronen Antwortlistener, der im Thin Client for JAX-WS und in Anwendungsclientumgebungen für den Empfang von Antworten für Anforderungen verwendet wird, die asynchron aufgerufen werden.

Vorbereitende Schritte

JAX-WS unterstützt den Aufruf von Web-Services über einen asynchronen Clientaufruf mit einem Callback- oder Abfragemodell. Das Callbackmodell und das Abfragemodell sind im Dispatch-Client und im dynamischen Proxy-Client verfügbar. Wenn der JAX-WS-Client einen asynchronen Clientaufruf verwendet, werden Antworten vom asynchronen Antwortlistener empfangen. Um sich mit der Verwendung des asynchronen Clientaufrufmodells vertraut zu machen, lesen Sie die Informationen zum asynchronen Aufruf von JAX-WS-Web-Services.

Informationen zu diesem Vorgang

Der asynchrone Antwortlistener wird in einem Web-Service-Client für die Bearbeitung eingehender asynchroner Antworten verwendet. Sie können den Listener im Thin Client für JAX-WS-Umgebungen und Anwendungsclientumgebungen verwenden. Standardmäßig öffnet der Listener für den Empfang asynchroner Antworten einen wahlfreien Port. Optional können Sie einen bestimmten Port für den Listener konfigurieren. Der Listener wird in der JAX-WS-Laufzeitumgebung automatisch gestartet, wenn der JAX-WS-Client für den Empfang asynchroner Antworten konfiguriert ist.

Es gibt zwei Versionen des asynchronen Antwortlisteners. Die nicht gesicherte Version des asynchronen Antwortlisteners unterstützt das Protokoll HTTP, und die sichere Version des asynchronen Antwortlisteners unterstützt das Protokoll HTTPS. Basierend auf dem vom JAX-WS-Client verwendeten Transport wird automatisch der richtige asynchrone Antwortlistener gestartet. Um sicherzustellen, dass das richtige SSL-Handshakeverfahren zwischen dem asynchronen Antwortlistener und dem Anwendungsserver stattfindet, konfigurieren Sie die SSL-Eigenschaften über die SSL-Transportrichtlinie oder die Java-Systemeigenschaften.

Verwenden Sie für Web-Service-Clients, die in der Anwendungsserverumgebung ausgeführt werden, das asynchrone Antwortservlet für den Empfang asynchroner Antworten.

Vorgehensweise

  1. Legen Sie fest, ob der JAX-WS-Client den Transportmechanismus HTTP oder HTTPS verwenden soll.
  2. Konfigurieren Sie den asynchronen Antwortlistener für die nicht sichere Kommunikation über HTTP.

    Sie können den HTTP-Port für den asynchronen Antwortlistener als Java-Systemeigenschaft oder als angepasste Eigenschaft in der Transportrichtlinie. Eigenschaften, die in den Dateien mit den Richtliniensatzbindungen definiert sind, überschreiben alle möglicherweise definierten Java-Systemeigenschaften.

    1. Definieren Sie die Eigenschaft com.ibm.websphere.webservices.http.listenerPort als Java-Systemeigenschaft. Wenn diese Eigenschaft als Java-Systemeigenschaft definiert ist, sind alle asynchronen Antwortlistener in dieser Java Virtual Machine (JVM) betroffen.
    2. Definieren Sie die Eigenschaft com.ibm.websphere.webservices.http.listenerPort in den Daten mit den Richtliniensatzbindungen für den Transport HTTPTransport. Wenn diese Eigenschaft als angepasste Eigenschaft in einer Richtliniensatzbindung für den Transport definiert ist, sind nur die Services, für die der Richtliniensatz konfiguriert wurde, betroffen.
  3. Konfigurieren Sie den asynchronen Antwortlistener für sichere Kommunikation über HTTPS.

    Sie können den HTTPS-Port für den asynchronen Antwortlistener als Java-Systemeigenschaft oder als angepasste Eigenschaft in der Transportrichtlinie konfigurieren.

    1. Definieren Sie die Eigenschaft com.ibm.websphere.webservices.https.listenerPort als Java-Systemeigenschaft. Wenn diese Eigenschaft als Java-Systemeigenschaft definiert ist, sind alle asynchronen Antwortlistener in dieser Java Virtual Machine (JVM) betroffen.
    2. Definieren Sie die Eigenschaft com.ibm.websphere.webservices.https.listenerPort in den Daten mit den Richtliniensatzbindungen für den Transport SSLTransport. Wenn diese Eigenschaft als angepasste Eigenschaft in einer Richtliniensatzbindung für den Transport definiert ist, sind nur die Services, für die der Richtliniensatz konfiguriert wurde, betroffen.

Ergebnisse

Ihr JAX-WS-Web-Service-Client ist jetzt so konfiguriert, dass er den asynchronen Antwortlistener für den Empfang eingehender asynchroner Antworten verwendet.

Beispiel

Das folgende Beispiel veranschaulicht, wie der asynchrone Antwortlistener beim Definieren des angepassten Ports 9999 aktiviert wird:
  • Verwenden Sie den folgenden Java-Befehl, um den angepassten HTTP-Port für den asynchronen Antwortlistener in einer Thin-Client-Umgebung zu konfigurieren:
    - java.exe -Dcom.ibm.websphere.webservices.http.listenerPort=9999 com.ibm.websphere.my_program
  • Verwenden Sie den folgenden launchClient-Befehl, um den angepassten HTTP-Port für den asynchronen Antwortlistener in einem Anwendungsclient-Container zu konfigurieren:
    - launchClient.bat MyClient.ear -CCDcom.ibm.websphere.webservices.http.listenerPort=9999
  • Im Folgenden sehen Sie einen Auszug aus einer HTTPTransport-Richtliniendatei HTTPTransport policy binding.xml, die die Eigenschaften des asynchronen Antwortlisteners enthält:
    </wsp:Policy>
       </wsp:ExactlyOne>
    	</wsp:All>
    	   <wshttp:outAsyncResponseProxy>
    		   <wshttp:connectInfo host="" port=""></wshttp:connectInfo>
                       <wshttp:basicAuth userid="" password=""></wshttp:basicAuth>
    	   </wshttp:outAsyncResponseProxy>
    	   <wshttp:properties>
    		<wshttp:customProperty name="com.ibm.websphere.webservices.http.listenerPort" value="9999" />
    	  </wshttp:properties>
    	</wsp:All>
       </wsp:ExactlyOne>
    </wsp:Policy>

Nächste Schritte

Führen Sie den JAX-WS-Client mit den angegebenen Optionen für den asynchronen Antwortlistener aus.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



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