API WS-Addressing propriétaires IBM
Les interfaces SPI (System Programming Interfaces) WS-Adressing (d'adressage de services Web) propriétaires IBM étendent les interfaces de programmation d'application (API) WS-Addressing propriétaires IBM pour vous permettre de créer et de traiter le contenu des références de noeud final et des autres artefacts WS-Addressing, et de définir ou d'extraire les propriétés d'adressage de message WS-Addressing (MAP) dans des messages de services Web ou à partir de ces derniers.
Vous ne pouvez pas utiliser les classes API JAX-WS standard avec ces SPI de propriété. Toutefois, vous pouvez convertir les références de noeud final créée en utilisant les classes API standard JAX-WS en instances de la classe de propriété com.ibm.websphere.wsaddressing.EndpointReference en utilisant la classe com.ibm.websphere.wsaddressing.jaxws21.EndpointReferenceConverter. Vous pouvez alors utiliser ces références de noeud final converties avec les interfaces SPI propriétaires.
Les interfaces de programmation présentées dans cette rubrique sont décrites plus en détail dans la documentation IBM SPI WS-Addressing.
Création, affinage et traitement du contenu des références de noeud final

L'interface SPI étend l'API propriétaire com.ibm.websphere.wsaddressing.EndpointReference WS-Addressing qui fournit ainsi des méthodes supplémentaires par le biais de l'interface com.ibm.wsspi.wsaddressing.EndpointReference. Vous pouvez transtyper des instances de com.ibm.websphere.wsaddressing.EndpointReference vers com.ibm.wsspi.wsaddressing.EndpointReference pour accéder à ces fonctions supplémentaires.
De même, l'instance com.ibm.wsspi.wsaddressing.EndpointReferenceManager de la SPI étend la fonctionnalité fournie dans l'API com.ibm.websphere.wsaddressing.EndpointReferenceManager.
- Création de références de noeud final
- Créez des objets EndpointReference en spécifiant l'URI du point de contact que l'objet EndpointReference doit représenter à l'aide de l'opération createEndpointReference(URI) ou EndpointReferenceManager.createEndpointReference(AttributedURI). Ces méthodes diffèrent de la méthode createEndpointReference qui est fournie au niveau de l'API, puisqu'elles ne génèrent pas automatiquement l'URI pour l'instance EndpointReference. Vous pouvez utiliser ces méthodes lorsque vous vous êtes assuré que l'URI du point de contact est stable, comme par exemple dans un environnement de test sans restriction de déploiement.
- Mappe entre les représentations XML et Java™ d'une référence de noeud final
- Vous pouvez sérialiser des instances de l'interface EndpointReference en leurs instances d'élément SOAP correspondantes à l'aide de l'opération EndpointReference.getSOAPElement. A l'inverse, vous pouvez désérialiser des éléments SOAP du type EndpointReferenceType vers leur représentation Java EndpointReference correspondante en utilisant l'opération EndpointReference.createEndpointReference(SOAPElement). Ces interfaces de sérialisation et de désérialisation peuvent vous permettre de créer des lieurs personnalisés pour des types contenant des instances EndpointReference.
- Utilisation de types de paramètre plus complexes
- Les interfaces propriétaires fournies au niveau de l'API sont limitées aux paramètres de référence de type xsd:string pour permettre la mise en oeuvre d'un modèle de programmation plus simple. Les SPI étendent cette prise en charge pour autoriser les paramètres de référence de type < xsd:any>. L'interface EndpointReference fournit des mécanismes permettant d'obtenir et de définir des paramètres de référence en tant qu'éléments SOAP. En outre, la classe EndpointReferenceManager fournit l'opération getSOAPElementReferenceParameterFromMessageContext qui permet aux noeuds finaux de réception d'acquérir les paramètres de référence qui ne sont pas de type String à partir du message entrant.Remarque: Lorsque vous appelez un service avec un objet EndpointReference qui contient un paramètre de référence, vous devez créer le paramètre de référence à l'aide d'un objet QName complet, avec toutes les parties présentes: namespace, localpart et prefix. Si l'objet QName n'est pas complet, les appels de service échouent.
- Définition des contenus des références de noeud final et traitement de ces contenus
- L'interface EndpointReference fournit des opérations vous permettant de définir et de traiter les contenus d'une instance EndpointReference, telles que les propriétés WS-Addressing address et metadata. Les interfaces supplémentaires sont fournies pour représenter les artefacts composant une référence de noeud final : métadonnées, URI d'attribut et nom de service. Vous pouvez créer des instances de ces interfaces à l'aide d'opérations qui sont fournies par la classe propriétaire WSAddressingFactory.
- Acquisition et modification de l'espace de nom pris en charge
- Le support WS-Addressing de ce produit prend en charge plusieurs espaces de nom. Les opérations setNamespace et getNamespace fournies dans l'interface propriétaire EndpointReference permettent de modifier et d'acquérir l'espace de nom associé à un objet EndpointReference spécifique. La sérialisation en éléments SOAP se fait en tenant compte de l'espace de nom de l'objet EndpointReference. Par défaut, l'espace de nom de la référence de noeud final de destination (c'est-à-dire la référence de noeud final définie comme la propriété com.ibm.websphere.wsaddressing.WSAConstants.WSADDRESSING_DESTINATION_EPR sur le contexte de demande de l'objet BindingProvider JAX-WS ou l'objet Stub ou Call JAX-RPC) définit l'espace de nom des propriétés d'adressage du message.
Définition et extraction des MAP WS-Addressing

Définition des MAP WS-Addressing sur les messages sortants :
| Nom de propriété (de type Chaîne) | Type Java et valeur de propriété | Nom de MAP WS-Addressing abstrait, utilisant la convention à notation du jeu de données XML W3C | Valeur par défaut |
|---|---|---|---|
| WSADDRESSING_DESTINATION_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [ destination ] URI
[ paramètres de référence ] * (tout) |
Non défini Cette propriété provient de l'API. |
| WSADDRESSING_FROM_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [source endpoint] | Non défini |
| WSADDRESSING_REPLYTO_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [reply endpoint] | L'un ou l'autre 'none', s'il s'agit d'un message unidirectionnel sans réponse, ou s'il n'est pas défini. Pour les messages asynchrones bidirectionnels dans les applications JAX-WS, cette propriété est générée automatiquement. Si, dans cette situation, vous tentez de définir cette propriété, une exception javax.xml.ws.WebServiceException est émise. Pour les messages synchrones bidirectionnels, vous pouvez définir cette propriété uniquement si l'adresse de référence de noeud final est l'URI anonyme. Si l'adresse ne correspond pas à l'URI anonyme, une exception javax.xml.ws.WebServiceException est émise. |
| WSADDRESSING_FAULTTO_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [fault endpoint] | Non défini Si vous tentez de définir cette propriété pour les messages asynchrones bidirectionnels dans les applications JAX-WS, une exception javax.xml.ws.WebServiceException est générée. Pour les messages synchrones bidirectionnels, vous pouvez définir cette propriété uniquement si l'adresse de référence de noeud final est l'URI anonyme. Si l'adresse ne correspond pas à l'URI anonyme, une exception javax.xml.ws.WebServiceException est émise. |
| WSADDRESSING_RELATIONSHIP_SET | java.util.Set contenant des instances de com.ibm.wsspi.wsaddressing.Relationship | [relationship] | Non défini |
| WSADDRESSING_MESSAGE_ID | com.ibm.wsspi.wsaddressing.AttributedURI | [message id] | Généré et défini sur une valeur unique |
| WSADDRESSING_ACTION | com.ibm.wsspi.wsaddressing.AttributedURI | [action] | Généré et défini conformément à la spécification WS-Addressing |
| WSADDRESSING_OUTBOUND_NAMESPACE | Chaîne | aucun | Si spécifié, l'espace de nom WS-Addressing de la propriété WSADDRESSING_DESTINATION_EPR ; sinon, l'espace de nom par défaut |
Extraction de MAP WS-Addressing à partir de messages entrants :
| Nom de propriété du contexte du message (de type Chaîne) | Type Java et valeur de propriété | Nom de MAP WS-Addressing abstrait, utilisant la convention à notation du jeu de données XML W3C |
|---|---|---|
| WSADDRESSING_INBOUND_TO | com.ibm.wsspi.wsaddressing.AttributedURI | [destination] |
| Pas de propriété spécifique. Pour obtenir le MAP associé, utilisez la méthode EndpointReferenceManager.getReferenceParameter(QName name). | Tout type | [reference parameters]* |
| WSADDRESSING_INBOUND_FROM_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [source endpoint] |
| WSADDRESSING_INBOUND_REPLYTO_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [reply endpoint] |
| WSADDRESSING_INBOUND_FAULTTO_EPR | com.ibm.websphere.wsaddressing.EndpointReference | [fault endpoint] |
| WSADDRESSING_INBOUND_RELATIONSHIP | java.util.Set contenant des instances de com.ibm.wsspi.wsaddressing.Relationship | [relationship] |
| WSADDRESSING_INBOUND_MESSAGE_ID | com.ibm.wsspi.wsaddressing.AttributedURI | [message id] |
| WSADDRESSING_INBOUND_ACTION | com.ibm.wsspi.wsaddressing.AttributedURI | [action] |
| WSADDRESSING_INBOUND_NAMESPACE | Chaîne | Espace de nom WS-Addressing du message entrant |