SOAP - Fehler
Wenn während der Verarbeitung ein Fehler auftritt, ist die Antwort auf eine SOAP-Nachricht ein SOAP-Fehlerelement im Nachrichtentext, und der Fehler wird an den Absender der SOAP-Nachricht zurückgegeben.
Der SOAP-Fehlermechanismus gibt bestimmte Informationen über den Fehler zurück, einschließlich eines vordefinierten Codes, einer Beschreibung und der Adresse des SOAP-Prozessors, der den Fehler generiert hat.
Zu beachtende Punkte
Eine SOAP-Nachricht kann nur einen Fehlerblock enthalten.
Der Fehler ist ein optionaler Teil einer SOAP-Nachricht.
Bei der HTTP-Bindung wird eine erfolgreiche Antwort mit dem Statuscodebereich von 200 bis 299 verknüpft.
Der SOAP-Fehler ist mit dem Statuscodebereich von 500 bis 599 verknüpft.
Unterelemente des Fehlers
Der SOAP-Fehler enthält die folgenden Unterelemente:
Sr.Nr. | Unterelement & Beschreibung |
---|---|
1 | <faultCode> Es ist ein Textcode, der verwendet wird, um eine Fehlerklasse anzuzeigen. In der nächsten Tabelle finden Sie eine Liste vordefinierter Fehlercodes. |
2 | <faultString> Es ist eine Textnachricht, die den Fehler erklärt. |
3 | <faultActor> Es ist eine Textzeichenfolge, die angibt, wer den Fehler verursacht hat. Dies ist nützlich, wenn die SOAP-Nachricht mehrere Knoten im SOAP-Nachrichtenpfad durchläuft und der Client wissen muss, welcher Knoten den Fehler verursacht hat. Ein Knoten, der nicht als endgültiges Ziel fungiert, muss ein errorActor- Element enthalten. |
4 | <detail> Es ist ein Element, das zum Übertragen anwendungsspezifischer Fehlermeldungen verwendet wird. Das Detailelement kann untergeordnete Elemente enthalten, die als Detaileinträge bezeichnet werden. |
SOAP-Fehlercodes
Die unten definierten Fehlercode-Werte müssen im Fehlercode- Element verwendet werden, um Fehler zu beschreiben.
Sr.Nr. | Fehlerbeschreibung |
---|---|
1 | SOAP-ENV:VersionMismatch Es wurde ein ungültiger Namespace für das SOAP-Envelope-Element gefunden. |
2 | SOAP-ENV:MustUnderstand Ein unmittelbares untergeordnetes Element des Header-Elements mit dem Attribut mustUnderstand auf "1" wurde nicht verstanden. |
3 | SOAP-ENV:Client Die Nachricht wurde falsch gebildet oder enthielt falsche Informationen. |
4 | SOAP-ENV:Server Es gab ein Problem mit dem Server, sodass die Nachricht nicht fortgesetzt werden konnte. |
Beispiel für einen SOAP-Fehler
Der folgende Code ist ein Beispielfehler. Der Client hat eine Methode mit dem Namen ValidateCreditCard angefordert , der Dienst unterstützt eine solche Methode jedoch nicht. Dies stellt einen Clientanforderungsfehler dar und der Server gibt die folgende SOAP-Antwort zurück:
<?xml version = '1.0' encoding = 'UTF-8'?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV = "http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi = "http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd = "http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode xsi:type = "xsd:string">SOAP-ENV:Client</faultcode>
<faultstring xsi:type = "xsd:string">
Failed to locate method (ValidateCreditCard) in class (examplesCreditCard) at
/usr/local/ActivePerl-5.6/lib/site_perl/5.6.0/SOAP/Lite.pm line 1555.
</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>