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 SPI de propriété.
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.
- Mappage d'une référence de noeud final entre les représentations XML et Java™
- 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 à l'aide de 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 interfaces SPI étendent cette prise en charge aux 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 sous forme d'é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 : Lors de l'appel d'un service à l'aide d'un objet EndpointReference contenant 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 dont tous les éléments sont présents : 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 de la 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 |
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'une ou l'autre valeur 'none', s'il s'agit d'un message unidirectionnel sans réponse, ou non 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 | String (chaîne) | none | 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 de la 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 |