Hi,
ich weiß nicht, wie ich das Problem anders benennen sollte. Es geht um folgendes:
Ich spreche einen Web Service über Axis2 mit RAMPart an. Das Databinding ist auf xmlbeans gesetzt und der Aufruf ist synchron. RAMPart funktioniert soweit. Der Aufruf des Web Services ist wie folgt:
Ich bekomme nun aber einen AxisFault zurück.
Mein Problem ist, dass ich nicht an die Nachricht selbst herankomme. Ich möchte den Quellcode des Stubs nicht verändern, sondern das Objekt in der Hand haben und ausgeben können.
Ich bekomme mit dem obigen Code aber nur das hier als Ausgabe:
In der Antwort-Nachricht selbst steht aber angeblich noch mehr drin (sagt der Entwickler beim Testen mit meiner Nachricht):
[XML]Verschlüsselungskram
...
</soap:Header>
<soapenv:Body wsu:Id="foo" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<soapenv:Fault xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<faultcode>soapenv:Client</faultcode>
<faultstring>Invaild Foo</faultstring>
<detail>
<ErrorMessage>Yout foo is not valid</ErrorMessage>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soap:Envelope>[/XML]
Wie komme ich da ran? Auf den Web Service habe ich keinerlei Einfluss. Habe ich irgendwo etwas vergessen?
Vielen Dank im Voraus.
Gruß
ich weiß nicht, wie ich das Problem anders benennen sollte. Es geht um folgendes:
Ich spreche einen Web Service über Axis2 mit RAMPart an. Das Databinding ist auf xmlbeans gesetzt und der Aufruf ist synchron. RAMPart funktioniert soweit. Der Aufruf des Web Services ist wie folgt:
Java:
...
FooResponseDocument response = stub.putMessage(putMessageDocument);
catch (AxisFault ex) {
System.err.println("AxisFault!");
System.err.println("Message: " + ex.getMessage());
System.err.println("Fault Code: " + ex.getFaultCode());
System.err.println("Details: " + ex.getDetail());
System.err.println(ex.getFaultNode());
System.err.println(ex.getReason());
if (ex.getFaultMessageContext() != null) {
System.err.println("Envelope: " + ex.getFaultMessageContext().getEnvelope().toString());
}
}
Ich bekomme nun aber einen AxisFault zurück.
Mein Problem ist, dass ich nicht an die Nachricht selbst herankomme. Ich möchte den Quellcode des Stubs nicht verändern, sondern das Objekt in der Hand haben und ausgeben können.
Ich bekomme mit dem obigen Code aber nur das hier als Ausgabe:
Code:
Message: A Soap envelope with fault action -http://www.w3.org/2005/08/addressing/soap/fault has been received without a fault element in the soap body
Fault Code: null
org.apache.axis2.AxisFault: A Soap envelope with fault action -http://www.w3.org/2005/08/addressing/soap/fault has been received without a fault element in the soap body
Details: null
null
A Soap envelope with fault action -http://www.w3.org/2005/08/addressing/soap/fault has been received without a fault element in the soap body
In der Antwort-Nachricht selbst steht aber angeblich noch mehr drin (sagt der Entwickler beim Testen mit meiner Nachricht):
[XML]Verschlüsselungskram
...
</soap:Header>
<soapenv:Body wsu:Id="foo" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<soapenv:Fault xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<faultcode>soapenv:Client</faultcode>
<faultstring>Invaild Foo</faultstring>
<detail>
<ErrorMessage>Yout foo is not valid</ErrorMessage>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soap:Envelope>[/XML]
Wie komme ich da ran? Auf den Web Service habe ich keinerlei Einfluss. Habe ich irgendwo etwas vergessen?
Vielen Dank im Voraus.
Gruß
Zuletzt bearbeitet: