SOAP - Défaut

Si une erreur se produit pendant le traitement, la réponse à un message SOAP est un élément d'erreur SOAP dans le corps du message et l'erreur est renvoyée à l'expéditeur du message SOAP.

Le mécanisme de panne SOAP renvoie des informations spécifiques sur l'erreur, notamment un code prédéfini, une description et l'adresse du processeur SOAP qui a généré l'erreur.

Points à noter

  • Un message SOAP ne peut porter qu'un seul bloc d'erreur.

  • L'erreur est une partie facultative d'un message SOAP.

  • Pour la liaison HTTP, une réponse réussie est liée à la plage de 200 à 299 codes d'état.

  • SOAP Fault est lié à la plage de 500 à 599 codes d'état.

Sous-éléments de défaut

L'erreur SOAP comprend les sous-éléments suivants -

Sr.Non Sous-élément et description
1

<faultCode>

C'est un code texte utilisé pour indiquer une classe d'erreurs. Voir le tableau suivant pour une liste des codes d'erreur prédéfinis.

2

<faultString>

C'est un message texte expliquant l'erreur.

3

<faultActor>

Il s'agit d'une chaîne de texte indiquant qui a causé l'erreur. Il est utile si le message SOAP traverse plusieurs nœuds dans le chemin du message SOAP et que le client a besoin de savoir quel nœud a provoqué l'erreur. Un nœud qui n'agit pas comme destination ultime doit inclure un élément faultActor .

4

<detail>

C'est un élément utilisé pour transporter des messages d'erreur spécifiques à l'application. L'élément de détail peut contenir des éléments enfants appelés entrées de détail.

Codes d'erreur SOAP

Les valeurs faultCode définies ci-dessous doivent être utilisées dans l' élément faultcode lors de la description des défauts.

Sr.Non Erreur de description
1

SOAP-ENV:VersionMismatch

Un espace de noms non valide a été trouvé pour l'élément Enveloppe SOAP.

2

SOAP-ENV:MustUnderstand

Un élément enfant immédiat de l'élément Header, avec l'attribut mustUnderstand défini sur "1", n'a pas été compris.

3

SOAP-ENV:Client

Le message était incorrectement formé ou contenait des informations incorrectes.

4

SOAP-ENV:Server

Il y a eu un problème avec le serveur, le message n'a donc pas pu continuer.

Exemple d'erreur SOAP

Le code suivant est un exemple d'erreur. Le client a demandé une méthode nommée ValidateCreditCard , mais le service ne prend pas en charge une telle méthode. Cela représente une erreur de demande client et le serveur renvoie la réponse SOAP suivante -

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