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>