Exemple : chargement de messages à partir d'un point d'extraction WS-Notification
Cette tâche vous permet d'écrire le code pour un client JAX-RPC ayant le rôle de consommateur de style extraction et qui nécessite des messages à partir d'un point d'extraction, sur la base du code fourni à titre d'exemple.
Pourquoi et quand exécuter cette tâche
Cet exemple repose sur l'utilisation des API JAX-RPC (Java™ API for XML-based remote procedure calls) avec le code généré en utilisant l'outil WSDL2Java (exécuté sur le WSDL Notification Broker généré par la création du point de service WS-Notification) et les API et SPI WebSphere Application Server.
Pour écrire le code pour un client JAX-RPC ayant le rôle de consommateur de style extraction et qui nécessite des messages à partir d'un point d'extraction, exécutez les étapes ci-après en vous reportant au code fourni à titre d'exemple pour plus d'informations.
Procédure
- Recherchez le service JAX-RPC. Le nom JNDI est spécifique de l'implémentation du client des services Web.
- Obtenez un module de remplacement pour le port sur lequel vous souhaitez appeler des opérations.
- Associez la demande à un point d'extraction. L'élément pullPointEPR est la référence EndpointReference renvoyée suite à l'appel de l'opération CreatePullPoint.
- Spécifiez le nombre de messages à extraire.
- Créez des informations facultatives.
- Créez les informations sur la demande.
- Appelez l'opération GetMessages en appelant la méthode associée sur le module de remplacement.
- Récupérez les messages renvoyés par la réponse.
Exemple
L'exemple de code suivant décrit un client JAX-RPC ayant le rôle de consommateur de style extraction et qui nécessite des messages à partir d'un point d'extraction :
// Consulter le service JAX-RPC. Le nom JNDI est spécifique de l'implémentation du client des services Web.
InitialContext context = new InitialContext();
javax.xml.rpc.Service service = (javax.xml.rpc.Service) context.lookup(
"java:comp/env/services/NotificationBroker");
// Obtenir un module de remplacement pour le port sur lequel vous souhaitez appeler des opérations
NotificationBroker stub = (NotificationBroker) service.getPort(NotificationBroker.class);
// Associate the request with a pull point. The pullPointEPR is the EndpointReference returned
// from invoking the CreatePullPoint operation
((Stub) stub)._setProperty(WSAConstants.WSADDRESSING_DESTINATION_EPR, pullPointEPR);
// Specify the number of messages you want to retrieve
Integer numberOfMessages = new Integer(2);
// Créer des informations facultatives
SOAPElement[] optionalInformation = new SOAPElement[] {};
// Create the request information
GetMessages request = new GetMessages(numberOfMessages, optionalInformation);
// Invoke the GetMessages operation by calling the associated method on the stub
GetMessagesResponse response = stub.getMessages(request);
// Get the messages returned from the response
NotificationMessage[] messages = response.getMessages();