Contact Us 1-800-596-4880

Display a Typed SOAP Fault

Configure the ListInventory operation in APIkit for SOAP so responses surface the TshirtFault typed fault from tshirt2.wsdl, which also maps faults to OrderTshirt, ListInventory, and TrackOrder. Select Soap Fault 1.1 or Soap Fault 1.2 for any WSDL, including services that do not declare typed faults.

  1. In Anypoint Studio, search for fault in the command palette.

    Multiple SOAP Fault components can appear.

  2. Drag SOAP Fault to the ListInventory:api-config flow.

    If Operation Unavailable message appears, cancel the operation and select another SOAP Fault component.

  3. Repeat these steps until you find a version match.

  4. In the properties editor, in Module Configuration, select soapkit-config.

  5. In Operation, select ListInventory.

  6. In Fault, select Fault.

  7. Save the properties.

  8. Select the Transform Message component.

  9. Modify the DataWeave code as follows:

    %dw 2.0
    output application/xml
    ns ns0 http://mulesoft.org/tshirt-service
    ns soap http://schemas.xmlsoap.org/soap/envelope/
    ---
    {
      soap#Fault: {
        faultcode: "soap:Server",
        faultstring: "The error details",
        detail: {
          ns0#TshirtFault: {
            errorStuff: 500
          }
        }
      }
    }
  10. Save the project and run it again.

    Using SoapUI, run the ListInventory operation.

    The client returns the following envelope instead of the default fault:

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
       <soap:Body>
          <soap:Fault>
             <faultcode>soap:Server</faultcode>
             <faultstring>The error details</faultstring>
             <detail>
                <ns0:TshirtFault xmlns:ns0="http://mulesoft.org/tshirt-service">
                   <errorStuff>500</errorStuff>
                </ns0:TshirtFault>
             </detail>
          </soap:Fault>
       </soap:Body>
    </soap:Envelope>