Spécification et acquisition de propriétés d'adressage de message à l'aide des interfaces SPI WS-Addressing propriétés d'IBM.

A l'aide des interfaces SPI WS-Addressing propriétés d'IBM, vous pouvez ajouter des propriétés MAP (Message Addressing Properties) WS-Addressing aux en-têtes SOAP d'un message client sortant via les propriétés du contexte de demande JAX-WS BindingProvider ou de l'objet JAX-RPC Stub ou Call. Lorsque le noeud final cible reçoit le message, l'interface SPI permet au noeud final d'obtenir les propriétés MAP via les propriétés du contexte du message.

Pourquoi et quand exécuter cette tâche

Il n'existe pas d'interface SPI équivalente dans la norme JAX-WS. Si vous souhaitez définir des propriétés d'adressage de message sur un client qui utilise des références de point d'entrée JAX-WS, vous devez convertir ces références dans les classes propriétés d'IBM avant de les utiliser avec ces interfaces SPI.

Effectuez cette tâche si en tant que développeur de services Web, vous utilisez la prise en charge WS-Addressing, ou si en tant que programmeur système, vous utilisez les interfaces SPI WS-Addressing propriétaires IBM pour définir les propriétés d'adressage de messages, telles que les références de noeud final d'erreur ou de réponse sur les messages de service Web.

Les propriétés que vous pouvez définir ou récupérer sont décrites, avec le type Java™ des instances de propriétés dans API WS-Addressing propriétaires IBM. La plupart des propriétés sont du type com.ibm.websphere.wsaddressing.EndpointReference, par exemple des références de noeud final de destination, de réponse ou d'erreur. La propriété de relation est un objet java.util.Set contenant des instances de la classe com.ibm.wsspi.wsaddressing.Relationship. Les relations permettent de définir une association entre des messages. Par exemple, dans un message de réponse vous pouvez indiquer l'ID du message auquel vous répondez. La propriété d'action est un objet AttributedURI qui identifie une méthode ou une opération particulière sur le noeud final cible.
Avertissement : Les propriétés d'action et de destination de référence de noeud final sont nécessaires pour la conformité du message avec la spécification WS-Addressing.

Procédure

  1. Sur le client, récupérez la référence du noeud final à partir du service et associez-la au contexte de demande de votre objet BindingProvider ou à votre objet Stub ou Call, comme décrit dans Création d'une application de service Web JAX-RPC qui utilise WS-Addressing.
  2. Créez des instances des propriétés requises. Par exemple, si vous souhaitez définir une référence de noeud final où le service cible doit envoyer les réponses, créez une instance de la classe com.ibm.websphere.wsaddressing.EndpointReference pour l'utiliser en tant que propriété WSADDRESSING_REPLYTO_EPR.
  3. Définissez les propriétés requises en les associant au contexte de demande de l'objet BindingProvider ou à l'objet Stub ou Call. Si vous utilisez un objet Stub ou Call, utilisez la méthode setProperty(String property_name, Object value). Contrairement à la référence du noeud final requise à la première étape, ces références n'ont pas besoin d'être converties dans un autre type, puisqu'elles sont transmises dans l'en-tête du message SOAP et non dans le corps. L'exemple suivant définit une référence du noeud final de destination et une référence du noeud final de réponse sur le contexte de demande d'un objet BindingProvider :
    import javax.xml.ws.BindingProvider;
    ...
     javax.xml.ws.Service jaxwsServiceObject=...;
     Printer myPrinterProxy = jaxwsServiceObject.getPort(portName, Printer.class);
     
     javax.xml.ws.BindingProvider myBindingProvider = (javax.xml.ws.BindingProvider)myPrinterProxy;
    
     // Retrieve the request context for the BindingProvider object
     Map myMap = myBindingProvider.getRequestContext();
    
     // Associate the endpoint reference for the web service. This property is required for the message 
     // to be WS-Addressing compliant.
      myMap.put(WSADDRESSING_DESTINATION_EPR, destinationEpr);
    
     // Associate the endpoint reference that represents the reply to the request context
     myMap.put(WSADDRESSING_REPLYTO_EPR, replyToEpr);
    Lors d'un appel sur l'objet BindingProvider, Stub ou Call, le produit ajoute les propriétés MAP appropriées à l'en-tête du message.
  4. Sur le serveur, récupérez les propriétés MAP à partir du message entrant via l'objet javax.xml.ws.WebServiceContext ou javax.xml.rpc.handler.MessageContext actuellement sur l'unité d'exécution. Lorsque WebSphere Application Server reçoit le message, il place les informations MAP dans le contexte du message sur l'unité d'exécution, le rendant disponible pour le service. Vous pouvez récupérer le contexte du message, par exemple en utilisant le contexte de session du bean enterprise du noeud final. Pour plus d'informations sur le contexte de messages, voir la norme JSR-109. Dans l'exemple suivant, la référence du noeud final de réponse est récupérée à l'aide du contexte du service Web :
    import javax.xml.ws.handler.MessageContext;
    import javax.xml.ws.WebServiceContext; 
    ...
    
      // Obtain the message context from the WebService context 
      private WebServiceContext wsContext;
      MessageContext context = wsContext.getMessageContext();
    
      // Retrieve the reply endpoint reference
      replyToEpr = context.getProperty(WSADDRESSING_INBOUND_REPLYTO_EPR);

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_wsa_maps
Nom du fichier : twbs_wsa_maps.html