2010-11-25 2 views
0

Dans un projet, nous devons appeler un service Web qui existe depuis de nombreuses années et qui ne peut pas être modifié. Ce service Web contient un bug: quand il envoie une réponse à une requête SOAP, la réponse ne contient pas toujours les requis < S: Enveloppe > et < S: Corps > éléments.Comment puis-je modifier la réponse du service Web entrant dans un client JAX-WS avant qu'il ne soit analysé?

Comment intercepter le message et insérer les pièces manquantes avant d'être analysé par l'analyseur SOAP JAX-WS?

Répondre

0

J'ai vu que cette question était toujours ouverte sans aucune réponse, donc je vais donner un aperçu de la façon dont le problème a été résolu.

En l'état, JAX-WS n'offre aucun support pour faire ce genre de chose. Il est probablement possible d'examiner les détails de l'implémentation et d'y ajouter un crochet, mais votre solution n'est plus portative pour les autres implémentations de conteneur de services Web.

Notre solution finale était de passer à Commons HTTP Client pour envoyer le message et recevoir la réponse. Les messages eux-mêmes ont été créés et analysés en utilisant simplement JAXB. Les en-têtes SOAP ont été ajoutés et supprimés manuellement.

Questions connexes