mulemule4mule-component

If a SOAP Fault error occurs in Mule, in which variable is '<soap:Header>' stored?


I am using Mule Runtime Engine 4.4.0.

Consume a Web Service to run the SOAP API.
I am not sure which variable the 'soap:Header' information is stored in when an SOAP fault occurs.

The <soap:Body> information was stored in error.muleMessage.payload, but the <soap:Header>information was not.

error.muleMessage.payload

SoapFault{faultCode={http://schemas.xmlsoap.org/soap/envelope/}Server, subCode=null, detail='<?xml version="1.0" encoding="UTF-8"?>', reason='error', node='null', role='faultactor'}

Response

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
    xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
    xmlns:se="http://test/session">
    <soap:Header>
        <se:Data>
            <se:Inner1>data1</se:Inner1>
            <se:Inner2>data2</se:Inner2>
            <se:Inner3>data3</se:Inner3>
        </se:Data>
    </soap:Header>
    <soap:Body>
        <soap:Fault>
            <faultcode>soap:Server</faultcode>
            <faultstring>error</faultstring>
            <faultactor>faultactor</faultactor>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>

I would like to know which variable the <soap:Header> information is stored in when a SOAP Fault error occurs.


Solution

  • As far as I know the Web Service Consumer doesn't allow to retrieve the SOAP headers when the response is a SOAP Fault error. If you just need the information for debugging you can enable Mule 4 HTTP wire logging.