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>