SOAP Faultcode Problem

ibo2010

Grünschnabel
Hallo zusammen ,

ich habe hier einen kleinen Webservice erstellt (Netbeans 6.9.1 / Java 1.6.21)der im Fehlerfall
einen Fault generiert. Das funktioniert soweit.
Wie aber kann ich denn diese Zeile " <faultcode>S:Server</faultcode>
anpassen ?
Da muss Client rein ....
Bin die ganze Zeit am suchen und finde nichts ......
Gruss

javax.xml.soap.SOAP<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<To xmlns="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/anonymous</To>
<Action xmlns="http://www.w3.org/2005/08/addressing">http://xmldefs.xxx/Processxxxx/Fault/Fault</Action>
<MessageID xmlns="http://www.w3.org/2005/08/addressing">uuid:50996bec-1e4c-45c8-9a40-0decf15f3ad8</MessageID>
<RelatesTo xmlns="http://www.w3.org/2005/08/addressing">uuid:2bd45389-a9ad-410b-bf46-c9162439872a</RelatesTo>
</S:Header>
<S:Body>
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
<faultcode>S:Server</faultcode>
<faultstring>Render Error : The prefix "Xfo" for element "Xfo:simple-page-master" is not bound.</faultstring>
<detail>
<Fault:Fault xmlns:Fault="http://xmldefs.xxx" xmlns="http://xmldefs.xx/DD/Commons" xmlns:ns2="http://xmldefs.xxxx">
<FaultBasic>
..
</FaultBasic>
</Fault:Fault>
</detail>
</S:Fault>
</S:Body>
</S:Envelope>
 
Der Fehler der in deinem Beispiel steht, scheint mir ein auf dem Server entstandener Fehler zu sein, insofern ist dort "Server" richtig. "Client" wäre für clientseitige Fehler, wo in z.B. einem Aufruf ein erforderliches Feld fehlt. http://www.w3schools.com/SOAP/soap_fault.asp

Du scheinst im Feld Details des soap-faults eine eigene Struktur zurückzugeben, sollte dort evtl. die Anpassung rein?
 
Hi Franz,
danke für die Antwort. Das mit der Struktur stimmt, dort kann ich aber keine Änderungen vornehmen.
Ich habs jetzt aber gelöst. Bei der Fault-Methode aus der WSDL gibt es auch die Möglichkeit einen weiteren Parameter vom Typ "Throwable" mitzugeben. Das mache ich jetzt und nu funktioniert es.
Gruss Ingo

private .....
SOAPFault soapFault = SOAPFactory.newInstance().createFault();
soapFault.setFaultString(faultMessage);
soapFault.setFaultCode(new QName(SOAPConstants.URI_NS_SOAP_ENVELOPE, "Client"));
return(new SOAPFaultException(soapFault));
}
 

Neue Beiträge

Zurück