Activation de la prise en charge de Web Services Addressing pour les applications JAX-WS
La prise ne charge de l'adressage des services Web (WS-Addressing) fournit des mécanismes permettant d'adresser des services Web et de fournir des informations d'adressage dans les messages. Pour les applications JAX-WS, vous pouvez activer la prise en charge de WS-Addressing de différentes façons, comme par exemple en configurant des ensembles de règles ou en utilisant des annotations dans le code.
Pourquoi et quand exécuter cette tâche
Effectuez cette tâche pour activer la prise en charge de WS-Addressing, soit en tant que fournisseur de services, soit en tant que client d'un service fourni par un tiers.
- Modifiez le comportement de la prise en charge de WS-Addressing une fois l'application déployée en associant un ensemble de règles à l'application. Au sein de l'ensemble de règles, vous pouvez configurer le type de règles de WS-Addressing pour indiquer la nécessité ou pas des informations de WS-Addressing dans les messages entrants et s'il faut utiliser des messages synchrones ou asynchrones. Vous pouvez communiquer la configuration des règles de WS-Addressing à d'autres serveurs et clients qui prennent en charge WS-Policy, en activant le partage de règles sur le serveur et en appliquant la règle du fournisseur au client. Cette méthode remplace les autres méthodes.
- Utilisez des éléments de descripteur de déploiement dans un élément port-component.
- Modifiez le comportement de la prise en charge de WS-Addressing lors du développement du service en utilisant les annotations Addressing ou SubmissionAddressing dans le code de service. Dans chaque annotation, vous pouvez spécifier si WS-Addressing est activé sur le serveur, si le serveur requiert les informations relatives à WS-Addressing dans les messages entrants et le masque d'échange de message que le serveur va utiliser. La présence de l'annotation Addressing dans le code ajoute également un élément UsingAddressing et une assertion WS-Policy à tout document WSDL généré pour le service.
- Modifiez le comportement du support WS-Addressing durant le développement du service en ajoutant les éléments UsingAddressing ou les assertions WS-Policy au document WSDL. Si vous fournissez votre propre document WSDL au lieu de compter sur l'environnement d'exécution JAX-WS pour en générer un, et si votre document WSDL est utilisé par des clients non JAX-WS 2.2, vous pouvez décider d'inclure l'élément UsingAddressing étant donné que ces clients ne traiteront pas les assertions WS-Policy.
- Associez un ensemble de règles à l'artefact client, puis effectuez l'une des actions suivantes :
- Indiquez dans la règle que WS-Addressing est obligatoire.
- Appliquez les règles du client et du fournisseur. Dans ce cas, la prise en charge de WS-Addressing n'est activée sur le client que si le partage des règles est activé sur le fournisseur de services et la configuration des règles pour le fournisseur indique que WS-Addressing est obligatoire.
- Définissez la propriété com.ibm.websphere.webservices.use.async.mep sur le contexte de demande du client.
- Utilisez l'interface SPI WS-Addressing d'IBM pour ajouter des propriétés d'adressage de messages au contexte de demande de message.
- Utilisez des éléments de descripteur de déploiement dans un élément port-component-ref.
- Utilisez l'annotation Addressing en combinaison avec l'annotation WebServiceRef dans le code client (si vous utilisez une référence de proxy de services Web injectée).
- Utilisez des caractéristiques d'adressage dans le code client. Les propriétés définies de cette façon remplacent celles définies dans le document WSDL pour le service.
- Utilisez les assertions WS-Policy dans le document WSDL pour spécifier le support WS-Addressing. Si vous ajoutez des annotations d'adressage à votre code d'application client, le document WSDL généré contiendra les assertions WS-Policy.
- Spécifiez l'élément UsingAddressing dans le document WSDL pour le service. Si le service utilise l'annotation Addressing et que vous générez le document WSDL à partir du code, l'élément UsingAddressing existe déjà.
Les tableaux suivants résument le comportement de la prise en charge de WS-Addressing. Utilisez le tableau suivant pour déterminer si un message de demande est accepté pour des paramètres client qui n'impliquent pas de configuration des règles.
Paramètres du client | Paramètres de règles du fournisseur | Paramètres WSDL du fournisseur (attribut UsingAddressing required) | ||||||
---|---|---|---|---|---|---|---|---|
WS-Addressing est facultatif | WS-Addressing est obligatoire1 | |||||||
Synchrone et asynchrone | Synchrone uniquement | Asynchrone uniquement | Synchrone et asynchrone | Synchrone uniquement | Asynchrone uniquement | false (WS-Addressing est facultatif) | true (WS-Addressing est obligatoire1) | |
Prise en charge de WS-Addressing activée et style de messagerie synchrone | Message accepté | Message accepté | Défaut | Message accepté | Message accepté | Défaut | Message accepté | Message accepté |
Prise en charge de WS-Addressing activée et style de messagerie asynchrone | Message accepté | Défaut | Message accepté | Message accepté | Défaut | Message accepté | Message accepté | Message accepté |
Prise en charge de WS-Addressing non activée et style de messagerie synchrone | Message accepté | Message accepté | Message accepté2 | Défaut | Défaut | Défaut | Message accepté | Défaut |
Prise en charge de WS-Addressing activée et style de messagerie asynchrone3 | Défaut | Défaut | Défaut | Défaut | Défaut | Défaut | Défaut | Défaut |
- Si WS-Addressing est obligatoire, toutes les demandes sans en-tête d'adressage WS sont rejetées.
- Le style de message n'est appliqué que si les en-têtes d'adressage WS apparaissent dans la demande.
- La messagerie asynchrone est impossible sans en-tête d'adressage WS.
Utilisez le tableau suivant afin de déterminer si un message de demande est accepté lorsque le client et le fournisseur ont tous deux une configuration des règles de WS-Addressing, les règles fournisseur et client sont appliquées au client, et le partage des règles est activé sur le serveur.
Paramètres de règles du client | Paramètres de règles du fournisseur | |||||
---|---|---|---|---|---|---|
WS-Addressing est facultatif | WS-Addressing est obligatoire | |||||
Synchrone et asynchrone | Synchrone uniquement | Asynchrone uniquement | Synchrone et asynchrone | Synchrone uniquement | Asynchrone uniquement | |
WS-Addressing facultatif et style de messagerie synchrone et asynchrone | Message accepté | Message accepté | Message accepté | Message accepté | Message accepté | Message accepté |
WS-Addressing facultatif et style de messagerie synchrone uniquement | Message accepté | Message accepté | Message accepté1 | Message accepté | Message accepté | Défaut |
WS-Addressing facultatif et style de messagerie asynchrone uniquement2 | Défaut | Défaut | Défaut | Message accepté | Défaut | Message accepté |
WS-Addressing obligatoire et style de messagerie synchrone et asynchrone | Message accepté | Message accepté | Message accepté | Message accepté | Message accepté | Message accepté |
WS-Addressing obligatoire et style de messagerie synchrone uniquement | Message accepté | Message accepté | Défaut | Message accepté | Message accepté | Défaut |
WS-Addressing obligatoire et style de messagerie asynchrone uniquement | Message accepté | Défaut | Message accepté | Message accepté | Défaut | Message accepté |
- Le style de message n'est appliqué que si les en-têtes d'adressage WS apparaissent dans la demande.
- La messagerie asynchrone est impossible sans en-tête d'adressage WS.
Procédure
- Pour modifier le comportement de la prise en charge de WS-Addressing en créant ou modifiant des ensembles de règles sur le fournisseur de services ou le client, voir la rubrique suivante : Activation de la prise en charge de Web Services Addressing pour les applications JAX-WS à l'aide d'ensembles de règles.
- Définissez la propriété com.ibm.websphere.webservices.use.async.mep sur le contexte de demande du client si vous utilisez des clients WebSphere Application Server pour activer la prise en charge de WS-Addressing. Voir la rubrique Appels de services Web JAX-WS de manière asynchrone pour plus d'informations.
- Pour modifier le comportement de la prise en charge de WS-Addressing à l'aide du descripteur de déploiement de l'application de service ou client, voir la rubrique suivante : Activation de la prise en charge de Web Services Addressing pour les applications JAX-WS à l'aide de descripteurs de déploiement.
- Pour modifier le comportement de la prise en charge de WS-Addressing à l'aide d'un programme en utilisant des annotations d'adressage dans l'application de service, ou sur le client, avec une référence de proxy de services Web injectée, voir la rubrique suivante : Activation de la prise en charge de Web Services Addressing pour les applications JAX-WS à l'aide d'annotations d'adressage.
- Pour activer la prise en charge de WS-Addressing à l'aide d'un programme sur le client en créant une instance d'une classe de fonction d'adressage, voir la rubrique suivante : Activation de la prise en charge de Web Services Addressing pour les applications JAX-WS à l'aide des fonctions d'adressage.
- Pour modifier le comportement de la prise en charge de WS-Addressing durant le développement d'une application de service ou client en ajoutant des assertions WS-Policy dans le fichier WSDL, voir la rubrique Activation de la prise en charge de Web Services Addressing pour les applications JAX-WS à l'aide de WS-Policy.
Résultats
Les propriétés WS-Addressing sont maintenant incluses à l'en-tête du message SOAP et elles sont traitées par le serveur à la réception du message.