Beispiel: Nachrichten aus einem WS-Notification-Pull-Punkt abrufen
Verwenden Sie diese Task, um auf der Basis des bereitgestellten Beispielcodeauszugs den Code für einen JAX-RPC-Client zu schreiben, der in Konsumentenrolle im Pull-Stil auftritt und Nachrichten von einem Pull-Punkt anfordert.
Informationen zu diesem Vorgang
Dieses Beispiel basiert auf der Verwendung der JAX-RPC-APIs (Java™ API for XML-based Remote Procedure Call) zusammen mit Code, der mit Tool WSDL2Java (auf der Basis der beim Erstellen des WS-Notification-Servicepunkts generierten NotificationBroker-WSDL) generiert wird, und den APIs und SPIs von WebSphere Application Server.
Führen Sie die folgenden Schritte aus, um auf der Basis des bereitgestellten Beispielcodeauszugs den Code für einen JAX-RPC-Client zu schreiben, der in Konsumentenrolle im Pull-Stil auftritt und Nachrichten von einem Pull-Punkt anfordert.
Vorgehensweise
- Ermitteln Sie den JAX-RPC-Service. Der JNDI-Name ist spezifisch für Ihre Web-Service-Clientimplementierung.
- Rufen Sie einen Stub für den Port ab, an dem Operationen gestartet werden sollen.
- Ordnen Sie die Anforderung einem Pull-Punkt zu. Der pullPointEPR ist die EndpointReference, die beim Aufruf der Operation "CreatePullPoint" zurückgegeben wird.
- Geben Sie die Anzahl der Nachrichten an, die Sie abrufen möchten.
- Erstellen Sie weitere optionale Informationen.
- Erstellen Sie die Anforderungsinformationen.
- Rufen Sie die Operation "GetMessages" durch Aufruf der zugehörigen Methode im Stub auf.
- Rufen Sie die in der Antwort zurückgegebenen Nachrichten ab.
Beispiel
Der folgende Beispielcode beschreibt einen JAX-RPC-Client, der in der Konsumentenrolle im Pull-Stil auftritt und Nachrichten von einem Pull-Punkt abruft:
// Den JAX-RPC-Service ermitteln.
Der JNDI-Name ist spezifisch für Ihre Web-Service-Clientimplementierung.
InitialContext context = new InitialContext();
javax.xml.rpc.Service service = (javax.xml.rpc.Service) context.lookup(
"java:comp/env/services/NotificationBroker");
// Ein Stub für den Port abrufen, auf dem Operationen gestartet werden sollen.
NotificationBroker stub = (NotificationBroker) service.getPort(NotificationBroker.class);
// Die Anforderung einem Pull-Punkt zuordnen. Der pullPointEPR ist die Endpunktreferenz, die
// durch den Aufruf der Operation CreatePullPoint zurückgegeben wird.
((Stub) stub)._setProperty(WSAConstants.WSADDRESSING_DESTINATION_EPR, pullPointEPR);
// Die Anzahl der Nachrichten angeben, die abgerufen werden soll.
Integer numberOfMessages = new Integer(2);
// Optionale Informationen erstellen.
SOAPElement[] optionalInformation = new SOAPElement[] {};
// Die Anforderungsinformationen erstellen.
GetMessages request = new GetMessages(numberOfMessages, optionalInformation);
// Die Operation GetMessages durch Aufruf der zugehörigen Methode im Stub starten.
GetMessagesResponse response = stub.getMessages(request);
// Die in der Antwort zurückgegebenen Nachrichten abrufen.
NotificationMessage[] messages = response.getMessages();