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. La prise en charge de WS-Addressing est désactivée par défaut sur les clients.
La méthode de désactivation de la prise en charge de WS-Addressing sur les serveurs dépend de la base de votre application : JAX-RPC ou JAX-WS.
Pourquoi et quand exécuter cette tâche
Vous n'avez pas besoin de désactiver la prise en charge de WS-Addressing même si votre application ne l'exige pas, car dans la plupart des cas, la prise en charge de WS-Addressing n'a pas d'impact négatif sur l'exécution des applications.
Pour les applications JAX-RPC, la désactivation de la prise en charge de WS-Addressing peut être risquée, car cette opération désactive également d'autres spécifications, telles que les transactions atomiques de services Web (Web Services Atomic Transactions).
Procédure
- Désactivez la prise en charge de WS-Addressing pour les fournisseurs de
services JAX-WS à l'aide de l'une des méthodes suivantes :
- Utilisez à la fois les annotations Addressing et
SubmissionAddressing dans le code de service, avec la valeur
false pour le paramètre enabled. Par exemple :
import javax.xml.ws.soap.Addressing;
@Addressing(enabled=false)
@SubmissionAddressing(enabled=false)
@WebService(...)
- Utilisez l'élément de descripteur de déploiement
<webservice-description>/<port-component>/<addressing>
dans le descripteur de déploiement de l'application de service. Par exemple :
<port-component>
<port-component-name>MyPort1</port-component-name>
<addressing>
<enabled>false</enabled>
</addressing>
<service-impl-bean>
<servlet-link>MyPort1ImplBean</servlet-link>
</service-impl-bean>
</port-component>
- Vous n'avez aucune opération à effectuer pour désactiver la prise en charge de WS-Addressing pour les clients JAX-WS, car la prise en charge de WS-Addressing est désactivée par défaut. Cependant, vous pouvez, à l'aide d'un programme, indiquer que WS-Addressing est
désactivé, à l'aide de l'une des manières suivantes :
- Utilisez à la fois les classes AddressingFeature et
SubmissionAddressingFeature dans le code client, avec la
valeur false pour le paramètre
enabled. Par exemple :
AddressingFeature feat = new AddressingFeature(false);
SubmissionAddressingFeature feat = new AddressingFeature(false);
- Utilisez l'annotation Addressing pour une
référence de proxy de services Web injectée. Par exemple :
public class MyClientApplication {
// Disable Addressing for a port-component-ref resource injection.
@Addressing(enabled=false)
@WebServiceRef(MyService.class)
private MyPortType myPort;
...
}
- Utilisez le descripteur de déploiement
<service>/<port-component>/<addressing>. Par
exemple :
<service-ref>
<service-ref-name>service/MyPortComponentRef</service-ref-name>
<service-interface>com.example.MyService</service-ref-interface>
<port-component-ref>
<service-endpoint-interface>com.example.MyPortType</service-endpoint-interface>
<addressing>
<enabled>false</enabled>
</addressing>
</port-component-ref>
</service-ref>
- Pour désactiver la prise en charge de WS-Addressing pour les fournisseurs de services ou clients JAX-RPC, paramétrez la propriété du système com.ibm.ws.wsaddressingAndDependentsDisabled sur true. Exemple :
java -Dcom.ibm.ws.wsaddressingAndDependentsDisabled=true ... application_name
Avertissement : Utilisez cette propriété avec précaution car les applications peuvent nécessiter le bon fonctionnement des propriétés d'adressage de messages WS-Addressing. La configuration de cette propriété désactive également la prise en charge des spécifications suivantes, qui dépendent de la prise en charge de WS-Addressing : Web Services Atomic Transactions, Web Services Business Agreement,
Web Services Notification et Web Services Reliable Messaging.
Résultats
En réalisant cette tâche, vous avez désactivé la prise en charge de WS-Addressing.
La désactivation de WS-Addressing sur les clients empêche WebSphere Application Server d'envoyer les propriétés d'adressage de messages WS-Addressing dans l'en-tête SOAP des messages sortants du service Web. De plus, la désactivation de WS-Addressing sur les serveurs empêche WebSphere Application Server de traiter les propriétés MAP WS-Addressing dans les en-têtes des messages SOAP entrants.