SOAP - Fallo

Si se produce un error durante el procesamiento, la respuesta a un mensaje SOAP es un elemento de error SOAP en el cuerpo del mensaje y el error se devuelve al remitente del mensaje SOAP.

El mecanismo de falla SOAP devuelve información específica sobre el error, incluido un código predefinido, una descripción y la dirección del procesador SOAP que generó la falla.

Puntos a tener en cuenta

  • Un mensaje SOAP puede llevar solo un bloque de falla.

  • La falla es una parte opcional de un mensaje SOAP.

  • Para el enlace HTTP, una respuesta exitosa se vincula al rango de códigos de estado de 200 a 299.

  • SOAP Fault está vinculado al rango de códigos de estado 500 a 599.

Subelementos de falla

La falla SOAP tiene los siguientes subelementos:

No Señor Subelemento y descripción
1

<faultCode>

Es un código de texto que se utiliza para indicar una clase de errores. Consulte la siguiente tabla para obtener una lista de códigos de falla predefinidos.

2

<faultString>

Es un mensaje de texto que explica el error.

3

<faultActor>

Es una cadena de texto que indica quién causó la falla. Es útil si el mensaje SOAP viaja a través de varios nodos en la ruta del mensaje SOAP y el cliente necesita saber qué nodo causó el error. Un nodo que no actúa como destino final debe incluir un elemento failureActor .

4

<detail>

Es un elemento que se utiliza para transportar mensajes de error específicos de la aplicación. El elemento de detalle puede contener elementos secundarios denominados entradas de detalle.

Códigos de error SOAP

Los valores de failCode definidos a continuación deben usarse en el elemento de código de falla al describir las fallas.

No Señor Error de descripción
1

SOAP-ENV:VersionMismatch

Se encontró un espacio de nombres no válido para el elemento SOAP Envelope.

2

SOAP-ENV:MustUnderstand

No se entendió un elemento secundario inmediato del elemento Header, con el atributo mustUnderstand establecido en "1".

3

SOAP-ENV:Client

El mensaje se formó incorrectamente o contenía información incorrecta.

4

SOAP-ENV:Server

Hubo un problema con el servidor, por lo que el mensaje no pudo continuar.

Ejemplo de falla de SOAP

El siguiente código es un ejemplo de falla. El cliente ha solicitado un método llamado ValidateCreditCard , pero el servicio no admite dicho método. Esto representa un error de solicitud del cliente y el servidor devuelve la siguiente respuesta 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>