Exemple : suspension d'une inscription WS-Notification
Cette tâche vous permet d'écrire le code pour un client JAX-RPC ayant le rôle d'abonné, qui suspend l'abonnement d'une application client, 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.
Dans WebSphere
Application Server,
il existe deux implémentations du
service WS-Notification : celle de la version 6.1 et celle
de la version 7.0. Cet exemple JAX-RPC peut interagir avec les points de service WS-Notification version 6.1 ou 7.0. Toutefois, si vous souhaitez utiliser WS-Notification avec des ensembles de règles, par exemple pour permettre la composition avec WS-ReliableMessaging, vos applications WS-Notification doivent être chiffrées afin d'utiliser le modèle de programmation JAX-WS (API Java pour les services Web basés sur XML) et doivent interagir avec les points de service WS-Notification version 7.0. Si vous débutez dans la programmation d'applications client JAX-WS, consultez les rubriques suivantes :
Procédure
- Recherchez le service JAX-RPC. Le nom JNDI est spécifique de l'implémentation du client des services Web. L'opération PauseSubscription fait partie du service SubscriptionManager.
- Obtenez un module de remplacement pour le port sur lequel vous souhaitez appeler des opérations.
- Associez la demande à l'abonnement que vous souhaitez suspendre. L'élément subscriptionEPR est la référence EndpointReference renvoyée par l'appel de l'opération Subscribe.
- Créez des informations facultatives.
- Appelez l'opération PauseSubscription en appelant la méthode associée sur le module de remplacement.
Exemple
L'exemple de code suivant décrit un client JAX-RPC ayant le rôle d'abonné, qui suspend un abonnement pour une application client :
// Consulter le service JAX-RPC. Le nom JNDI est spécifique de l'implémentation du client des services Web.
// The PauseSubscription operation belongs to the SubscriptionManager service
InitialContext context = new InitialContext();
javax.xml.rpc.Service service = (javax.xml.rpc.Service) context.lookup("java:comp/env/services/SubscriptionManager");
// Obtenir un module de remplacement pour le port sur lequel vous souhaitez appeler des opérations
SubscriptionManager stub = (SubscriptionManager) service.getPort(SubscriptionManager.class);
// Associate the request with the subscription you want to pause. The subscriptionEPR is the
// EndpointReference returned by the invocation of the Subscribe operation
((Stub) stub)._setProperty(WSAConstants.WSADDRESSING_DESTINATION_EPR, subscriptionEPR);
// Créer des informations facultatives
SOAPElement[] optionalInformation = new SOAPElement[] {};
// Invoke the PauseSubscription operation by calling the associated method on the stub
SOAPElement[] additionalReturnedInformation = stub.pauseSubscription(optionalInformation);