2009-10-20 3 views
6

Dies ist wahrscheinlich eine einfache Frage für alle, die über eine moderate Erfahrung mit Webdiensten verfügen, die Apache Axis verwenden.So erhalten Sie eine SOAP-Nachricht während der Verwendung eines Axis 1.4 wsdl2java-generierten Clients

Ich habe einen Web-Service-Client, der von Wsdl2java in Axis 1.4 generiert wurde. Ich schreibe Komponententests, die auf die eigentliche SOAP-Nachricht selbst zugreifen müssen, und führe einen Vergleich mit den clientseitigen Java-Klassen durch, die von Axis generiert werden. (Fragen Sie nicht)

Wie kann ich die tatsächliche SOAP-Nachricht von einer Antwort vom Dienst abrufen?

Aus was ich aus der Suche sammeln kann ist, dass ich den MessageContext bekommen muss. Ich habe etwas in diesen Zeilen versucht ...

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

Aber mc ist null in diesem Fall ....

Jede Hilfe ist willkommen!

Antwort

5
+1

Könnten Sie bitte die Antwort erweitern? Zusätzlich zu möglichen Link-Fäulnis in der Zukunft (yay, 6 Jahre!), Hat die Seite am Link eine Menge Code und es ist nicht sofort ersichtlich, "wie es gemacht wird". Daher ist eine kurze Zusammenfassung hier mit dem entsprechenden Code-Snippet (nicht eine ganze Wand des Codes) sehr hilfreich! – ADTC

+1

Ja, ich werde mich darauf einstellen! – rshepherd

3

Wenn _call Objekt gefüllt wird, um die Zeile unter Aufruf gibt es.

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

Für Antwort verwenden die unter einem

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

Call ist ein org.apache.axis.client.Call wie Sie wissen.

Verwandte Themen