Asynchronen JAX-WS-JMS-Antwortnachrichtenlistener verwenden

Java API for XML-Based Web Services (JAX-WS) enthält einen asynchronen JMS-Antwortnachrichtenlistener, der verwendet wird, um Antworten auf asynchrone JAX-WS-Anforderungen zu empfangen, die den JMS-Transport verwenden. Der asynchrone JMS-Antwortnachrichtenlistener wird in Anwendungsserver- und Anwendungsclientumgebungen verwendet.

Vorbereitende Schritte

JAX-WS bietet Unterstützung für den asynchronen den Aufruf von Web-Service-Operationen über ein Callback- oder Abfragemodell. Wenn der JAX-WS-Client den JMS-Transport für den Aufruf asynchroner Operationen verwendet, werden die Antworten vom asynchronen JMS-Antwortnachrichtenlistener empfangen. Um sich mit der Verwendung des asynchronen JAX-WS-Clientaufrufmodells vertraut zu machen, lesen Sie die Informationen zum asynchronen Aufruf von JAX-WS-Web-Services.

Informationen zu diesem Vorgang

Der asynchrone JMS-Antwortnachrichtenlistener wird in der Web-Service-Clientumgebung verwendet, um eingehende asynchrone Antworten zu empfangen, wenn die Clientanwendung den JMS-Transport verwendet. Für die ordnungsgemäße Funktionsweise des Listeners sind eine Verbindungsfactory und eine Warteschlange erforderlich. Konfigurieren Sie zunächst die Verbindungsfactory und die Warteschlange, und geben Sie dann die JNDI-Namen der Verbindungsfactory und der Warteschlange an den Listener weiter, indem Sie Java-Systemeigenschaften definieren. Die Umgebung, in der der Client ausgeführt wird, bestimmt, wie die Systemeigenschaften definiert werden.

Der asynchrone JMS-Antwortnachrichtenlistener wird automatisch von der Laufzeitumgebung des Web-Service-Clients gestartet, wenn der Client die erste asynchrone JAX-WS-Operation über den JMS-Transport aufruft.

Die Verbindungsfactory und die Warteschlange, die für den asynchronen Antwortnachrichtenlistener konfiguriert werden, werden für alle Anforderungen verwendet, die in einem bestimmten Java-Prozess aufgerufen werden, z. B. für den Anwendungsserver oder einen Anwendungsclient-Container. Sie können die Verbindungsfactory für mehrere Java-Prozesse gemeinsam nutzen. Die gemeinsame Nutzung einer einzigen Warteschlange für mehrere Java-Prozesse ist jedoch nicht möglich.

Vorgehensweise

  1. Bestimmen Sie, ob der JAX-WS-Client den JMS-Transportmechanismus verwenden soll.
  2. Konfigurieren Sie für jeden Java™-Prozess, der JMS als Transport für asynchrone JAX-WS-Anforderungen verwendet, die Verbindungsfactory und die Warteschlange, die der asynchrone JMS-Antwortnachrichtenlistener für diesen Prozess verwenden soll. Sie können eine Verbindungsfactory für mehrere Java-Prozesse gemeinsam nutzen, aber die gemeinsame Nutzung einer einzigen Warteschlange für mehrere Java-Prozesse ist nicht möglich.
  3. Setzen Sie für jeden Java-Prozess die Java-Systemeigenschaften "com.ibm.websphere.webservices.jms.AsyncReplyQueueName" and "com.ibm.websphere.webservices.jms.AsyncReplyCFName", und geben Sie die JNDI-Namen der Warteschlange und der Verbindungsfactory an, die vom asynchronen JMS-Antwortnachrichtenlistener für diesen Prozess verwendet werden sollen.

    Wenn der JNDI-Name der Warteschlange der Standardwert "jms/DefaultAsyncReplyQueue" ist, müssen Sie die Eigenschaft "AsyncReplyQueueName" nicht setzen. Wenn der JNDI-Name der Verbindungsfactory der Standardwert jms/DefaultAsyncReplyCF ist, müssen Sie auch die Eigenschaft "AsyncReplyCFName" nicht setzen.

    Wenn Ihr Client in der Anwendungsserverumgebung ausgeführt wird, setzen Sie die Eigenschaften als Systemeigenschaften des Anwendungsservers über die Administrationskonsole oder über den Befehl wsadmin.

    Wenn Ihr Client in der Anwendungsclient-Containerumgebung ausgeführt wird, müssen Sie die Eigenschaften mit der Option –CCD in der Befehlszeile launchClient setzen.

Ergebnisse

Ihr JAX-WS-Web-Service-Client ist jetzt so konfiguriert, dass der asynchrone JMS-Antwortnachrichtenclient für den Empfang asynchroner Antwortnachrichten verwendet wird, falls der JMS-Transport verwendet wird.

Beispiel

Angenommen, Sie haben einen JAX-WS-Web-Service-Client, der in einer Anwendungsclient-Containerumgebung ausgeführt wird und den JMS-Transport für die Kommunikation mit dem Server verwendet. Weiter angenommen, der Client ruft asynchrone JAX-WS-Operationen auf. Sie erstellen eine Verbindungsfactory mit dem JNDI-Namen jms/MyAppCF und eine Warteschlange mit dem JNDI-Namen jms/MyAppAsyncReplyQueue. Wenn Sie den Client mit dem Befehl launchClient aufrufen, geben Sie die JNDI-Namen der Warteschlange und der Verbindungsfactory, wie im folgenden Beispiel gezeigt, an:
launchClient MyAppClient.ear \
   -CCDcom.ibm.websphere.webservices.jms.AsyncReplyQueueName=jms/MyAppReplyQueue \
   -CCDcom.ibm.websphere.webservices.jms.AsyncReplyCFName=jms/MyAppCF \
   <application arguments>

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_jmsasyncresplistener
Dateiname:twbs_jmsasyncresplistener.html