Le comportement relatif à la façon dont le paramètre d'action SOAP est déterminé dans les messages sortants pour les clients JAX-WS Dispatch a changé dans WebSphere Application Server version 8. Dans les éditions précédentes, si une action SOAP n'est pas spécifiée par l'application client Dispatch, l'environnement d'exécution JAX-WS n'envoie pas l'action SOAP appropriée dans le message sortant. A la place, il associe l'action à une opération anonyme. Désormais, dans la version 8, si l'action SOAP n'est pas spécifiée par l'application client, l'environnement d'exécution JAX-WS analyse le message sortant afin d'identifier l'opération appelée et de déterminer la valeur appropriée pour l'action SOAP.
Cette règle marque les appels permettant de créer un client Dispatch lorsque :
Meilleures pratiques de codage pour WebSphere Application Server Traditional et Liberty permet à l'application client de fournir une action SOAP avec JAX-WS javax.xml.ws.BindingProvider Propriétés SOAPACTION_USE_PROPERTY et SOAPACTION_URI_PROPERTY . L'action SOAP fournie sera utilisée et l'analyse du message sortant n'aura pas lieu quel que soit le paramètre de la DISPATCH_CLIENT_OUTBOUND_RESOLUTION .
Cet exemple illustre la meilleure pratique de codage avec l'action SOAP définie dans le contexte de requête. Si les propriétés SOAPACTION_URI_PROPERTY n'est pas défini ou si SOAPACTION_USE_PROPERTY est défini sur false , l'appel à la createDispatch() sera marquée par cette règle.
Exemple :Dans la mesure où cette analyse syntaxique peut être coûteuse, une propriété peut être définie sur le serveur WebSphere Application Server Traditional au niveau du système (pour toujours désactiver l'analyse syntaxique) ou sur Contexte du message de demande JAX-WS (pour désactiver l'analyse syntaxique pour chaque message). Si l'analyse est désactivée, l'action SOAP figurant dans le message sortant reste associée à une opération anonyme, comme avant. La propriété de désactivation est définie comme constante org.apache.axis2.jaxws.Constants.DISPATCH_CLIENT_OUTBOUND_RESOLUTION avec une valeur de chaîne de jaxws.dispatch.outbound.operation.resolution.enable . Si la propriété n'est pas définie, elle est interprétée comme la chaîne true , en activant la résolution des opérations sortantes. Définition de la propriété sur false désactive la résolution de l'opération sortante.
Pour plus d'informations, voir :