The Simple Object Access Protocol (SOAP) data handler parses and serializes both SOAP messages and the header, as well as the SOAP fault details.
The SOAP data handler looks at the binding context to determine if this message is a normal response or a fault. If a normal response, it converts the data object to XML and adds it to the SOAP body. If a fault, it creates a SOAP fault, converts the data object to XML and adds it to the SOAP details. It gets the fault name from the binding context and adds a custom SOAP header as follows:
<ibmSoap:BusinessFaultName
xmlns:ibmSoap="http://www.ibm.com/soap">CustomerAlreadyExists</ibmSoap:BusinessFaultName>
where CustomerAlreadyExists is
the fault name. If the SOAP data handler is called for a service runtime exception (SRE), then the SOAP data handler creates a custom SOAP header as follows: <ibmSoap:RuntimeFault xmlns:ibmSoap="http://www.ibm.com/soap"/>, create the SOAP fault, set the status code to "Server" and set the fault string from the message of the ServiceRuntimeException.
The SOAP data handler converts the InputStream or Reader to a data object in the case of a normal response and service business exception. In the case of a service runtime exception (SRE), it reads the fault string from the SOAP fault, creates a ServiceRuntimeException and sets the fault string as the message of the ServiceRuntimeException
The following limitations apply to the SOAP data handler currently: