SOAP - Falha

Se ocorrer um erro durante o processamento, a resposta a uma mensagem SOAP é um elemento de falha SOAP no corpo da mensagem e a falha é retornada ao remetente da mensagem SOAP.

O mecanismo de falha SOAP retorna informações específicas sobre o erro, incluindo um código predefinido, uma descrição e o endereço do processador SOAP que gerou a falha.

Pontos a serem observados

  • Uma mensagem SOAP pode conter apenas um bloco de falha.

  • A falha é uma parte opcional de uma mensagem SOAP.

  • Para ligação HTTP, uma resposta bem-sucedida está vinculada ao intervalo de códigos de status de 200 a 299.

  • A falha SOAP está vinculada à faixa de 500 a 599 de códigos de status.

Subelementos de falha

A falha SOAP possui os seguintes subelementos -

Sr. Não Subelemento e descrição
1

<faultCode>

É um código de texto usado para indicar uma classe de erros. Consulte a próxima tabela para obter uma lista dos códigos de falha predefinidos.

2

<faultString>

É uma mensagem de texto explicando o erro.

3

<faultActor>

É uma string de texto que indica quem causou a falha. É útil se a mensagem SOAP percorrer vários nós no caminho da mensagem SOAP e o cliente precisar saber qual nó causou o erro. Um nó que não atua como destino final deve incluir um elemento faultActor .

4

<detail>

É um elemento usado para transportar mensagens de erro específicas do aplicativo. O elemento de detalhe pode conter elementos filho chamados de entradas de detalhes.

Códigos de falha SOAP

Os valores de faultCode definidos abaixo devem ser usados ​​no elemento de código de falha ao descrever as falhas.

Sr. Não Descrição de erro
1

SOAP-ENV:VersionMismatch

Encontrado um namespace inválido para o elemento SOAP Envelope.

2

SOAP-ENV:MustUnderstand

Um elemento filho imediato do elemento Header, com o atributo mustUnderstand definido como "1", não foi compreendido.

3

SOAP-ENV:Client

A mensagem foi formada incorretamente ou continha informações incorretas.

4

SOAP-ENV:Server

Ocorreu um problema com o servidor, por isso a mensagem não pôde continuar.

Exemplo de falha SOAP

O código a seguir é um exemplo de falha. O cliente solicitou um método denominado ValidateCreditCard , mas o serviço não oferece suporte a esse método. Isso representa um erro de solicitação do cliente e o servidor retorna a seguinte resposta 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>