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>