SOAP - Guasto

Se si verifica un errore durante l'elaborazione, la risposta a un messaggio SOAP è un elemento di errore SOAP nel corpo del messaggio e l'errore viene restituito al mittente del messaggio SOAP.

Il meccanismo di errore SOAP restituisce informazioni specifiche sull'errore, incluso un codice predefinito, una descrizione e l'indirizzo del processore SOAP che ha generato l'errore.

Punti da notare

  • Un messaggio SOAP può contenere un solo blocco di errore.

  • L'errore è una parte facoltativa di un messaggio SOAP.

  • Per il binding HTTP, una risposta corretta è collegata all'intervallo compreso tra 200 e 299 di codici di stato.

  • Il guasto SOAP è collegato alla gamma di codici di stato da 500 a 599.

Sottoelementi di guasto

L'errore SOAP ha i seguenti elementi secondari:

Suor n Sottoelemento e descrizione
1

<faultCode>

È un codice di testo utilizzato per indicare una classe di errori. Vedere la tabella successiva per un elenco di codici di errore predefiniti.

2

<faultString>

È un messaggio di testo che spiega l'errore.

3

<faultActor>

È una stringa di testo che indica chi ha causato l'errore. È utile se il messaggio SOAP viaggia attraverso diversi nodi nel percorso del messaggio SOAP e il client deve sapere quale nodo ha causato l'errore. Un nodo che non funge da destinazione finale deve includere un elemento faultActor .

4

<detail>

È un elemento utilizzato per trasmettere messaggi di errore specifici dell'applicazione. L'elemento dettaglio può contenere elementi figlio chiamati voci di dettaglio.

Codici di errore SOAP

I valori faultCode definiti di seguito devono essere utilizzati nell'elemento faultcode durante la descrizione degli errori.

Suor n Descrizione dell'errore
1

SOAP-ENV:VersionMismatch

Trovato uno spazio dei nomi non valido per l'elemento SOAP Envelope.

2

SOAP-ENV:MustUnderstand

Un elemento figlio immediato dell'elemento Header, con l'attributo mustUnderstand impostato su "1", non è stato compreso.

3

SOAP-ENV:Client

Il messaggio è stato formato in modo errato o conteneva informazioni errate.

4

SOAP-ENV:Server

Si è verificato un problema con il server, quindi il messaggio non ha potuto continuare.

Esempio di errore SOAP

Il codice seguente è un esempio di errore. Il client ha richiesto un metodo denominato ValidateCreditCard , ma il servizio non supporta tale metodo. Questo rappresenta un errore di richiesta del client e il server restituisce la seguente risposta SOAP:

<?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>