2010-01-08 5 views
1

Je suis dans la position très particulière d'essayer d'accéder à un service SOAP dont les réponses sont encapsulées dans du code HTML. Ceci est un bug avec le fournisseur de service (SourceForge), reconnu pour sept mois, sans ETA jusqu'à présent. Nitty-gritty details.Pré-traitement de la réponse du serveur avant de le transmettre à l'axe

Si je peux intercepter la réponse réelle avant de la transmettre à Axis, je serais en mesure de supprimer le contenu HTML, mais je ne sais pas comment le faire. Tout pointeur (ainsi que des solutions alternatives) serait apprécié.


Mise à jour: L'utilisation de l'axe 1.4

+0

Est-ce avec l'Axe 1? – skaffman

+0

Oui, ceci est avec l'axe 1. –

Répondre

0

Si vous pouvez ajouter au côté serveur, un ServletFilter pourrait être une solution.

Si tout ce que vous pouvez changer est sur le côté client, vous pouvez créer un servlet proxy qui reçoit les données SOAP, il se propage au serveur et bandes le résultat.

L'effacement réel peut être fait en utilisant XSLT, bien que cela puisse être exagéré si le html d'emballage est constant.

+0

Je suis sur le côté client, mais je ne pense pas que je comprends votre réponse. Ce que je fais, c'est invoquer Axis du côté client alors (... la magie de l'axe ...) J'obtiens la réponse actuelle. Je n'ai pas de servlets en cours d'utilisation. –

+0

Axis effectue un appel de servlet, si vous configurer localement pour appeler votre servlet proxy, il peut appeler le côté à distance et la bande la réponse afin que votre code Axis reçoit le resonse dépouillé. – rsp

1

Je voudrais essayer de voir si je peux ajouter un intercepteur Stripping le HTML. Ils semblent utiliser que pour la compression SOAP, jetez un oeil à: http://www.thomas-bayer.com/soap-compression-howto.htm Regardez la partie de la configuration du client, vous pouvez peut-être faire quelque chose de similaire.

+0

Intéressant, merci. Je vais chercher à fournir un «transport» personnalisé et voir ce que cela fait. –