SOAP Faults
Before concluding our discussion on web services and the associated concepts, we should look at the fault handling mechanism of web services. Faults can be returned by web services due to various reasons. For example, if the request message does not conform to the XML schema of web service, the service responds back with a SOAP Fault. The SOAP Fault element is used to carry such faults occurred during web service communication. This element must be included inside body of a SOAP message. A typical SOAP 1.1 Fault message consists of the following child elements:
faultcode: Thefaultcodeelement is used to define the type of the fault. For example, if the problem of message transmission is due to the server, the associated faultcode isServer. Similarly, we can useVersionMismatch,MustUnderstandandClienterror codes as appropriate.faultstring: Thefaultstringelement is intended to provide a human readable explanation about the fault.faultactor: Thefaultactorelement provides an indication about the responsible party who caused the fault to occur in the message path.detail: Thedetailelement is used to carry application specific error information related to the body element. For example, if the payload of the SOAP request is unable cannot be processed by web service, the associated response should include the detail element inside the SOAP Fault.
In the case of SOAP v1.2 messaging, faultcode is renamed to Code and faultstring is renamed to Reason. In addition to that, a SOAP v1.2 Fault message can include the optional child elements, Node, Role, and Detail. A detailed explanation of SOAP 1.1 Faults can be found at http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383507. SOAP 1.2 Faults are explained in detail at http://www.w3.org/TR/soap12-part1/#soapfault.