SOAP Faults

Un mensaje SOAP que contiene un elemento "Fault" dentro del elemento "Body" se denomina un fault message.

Los fault messages se utilizan para reportar errores a otros nodos en la ruta del mensaje. Los errores pueden ser por formato de mensaje inadecuado, versiones incompatibles, problemas de proceso de cabeceras o errores específicos de la aplicación.

Aquí tenemos un faul message de SOAP:

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:m="http://www.example.org/timeouts"
xmlns:xml="http://www.w3.org/XML/1998/namespace">
<env:Body>
<env:Fault>
<env:Code>
<env:Value>env:Sender</env:Value>
<env:Subcode>
<env:Value>m:MessageTimeout</env:Value>
</env:Subcode>
</env:Code>
<env:Reason>
<env:Text xml:lang="en">Sender Timeout</env:Text>
<env:Text xml:lang="sv">Avsändar timeout</env:Text>
</env:Reason>
<env:Detail>
<m:MaxTime>P5M</m:MaxTime>
</env:Detail>
</env:Fault>
</env:Body>
</env:Envelope>


Si un error ocurre, el nodo SOAP sigue el siguiente proceso:

  • Se genera una SOAP Fault en el nodo (intermediario o receptor final)
  • Si el patrón de intercambio de mensajes es One-Way, la SOAP fault no debe transmitirse al emisor, y debe ser almacenada en algún sitio.
  • Si el patrón de intercambio de mensajes es request-response, la SOAP fault debe transmitirse al emisor. El nodo que reciba la SOAP fault debe tomar las medidas del caso.

Si el elemento SOAP Body contiene un elemento Fault, sólamente debe contener un sólo elemento Fault y nada más.

Por ende, la respuesta es la B.

Pregunta tomada de ActualTests

Publicar un comentario