Contact Us 1-800-596-4880

Display a Typed Fault

Make the ListInventory operation display the typed fault. The tshirt2.wsdl file includes the TshirtFault typed fault, which is mapped to the WSDL operations:

  • OrderTshirt

  • ListInventory

  • TrackOrder

APIkit for SOAP supports the following types of SOAP faults:

  • Soap Fault 1.1

  • Soap Fault 1.2

You can select either type by using any WSDL file, even for files that do not contain 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>