2009-10-20 21 views
6

Cette question est probablement facile pour toute personne ayant une expertise modérée avec les services Web utilisant Apache Axis.Comment obtenir un message SOAP tout en utilisant un client Axis 1.4 généré par wsdl2java

J'ai un client de service Web qui a été généré par wsdl2java dans Axis 1.4. J'écris des tests unitaires qui doivent accéder au message SOAP lui-même, et faire une comparaison avec les classes java côté client qui sont générées par Axis. (ne pas demander)

Comment puis-je récupérer le message SOAP réel à partir d'une réponse du service? D'après ce que je peux comprendre en cherchant autour, c'est que je dois obtenir le MessageContext. J'ai essayé quelque chose le long de ces lignes ...

MessageContext mc = MessageContext.getCurrentContext(); String message = mc.getCurrentMessage(). GetSOAPPartAsString();

Mais mc est nul dans ce cas ....

Toute aide est appréciée!

Répondre

5
+1

Pourriez-vous s'il vous plaît développer la réponse? En plus de la pourriture possible des liens dans le futur (yay, 6 ans!), La page sur le lien a beaucoup de code et il n'est pas immédiatement apparent "comment c'est fait". Donc, un résumé rapide ici avec l'extrait de code pertinent seulement (pas un mur entier de code) sera très utile! – ADTC

+1

Ouais, je vais aller droit au but! – rshepherd

3

Lorsque l'objet _call est rempli d'appeler la ligne ci-dessous donne.

String request=_call.getMessageContext().getRequestMessage() .getSOAPPart().getEnvelope().toString();

Pour utiliser la réponse ci-dessous l'un

_call.getMessageContext().getResponseMessage() .getSOAPPart().getEnvelope().toString()

Call est un org.apache.axis.client.Call comme vous le savez.

Questions connexes