Maximo Open Forum

 View Only

Issue: WebSphere Returning "Internal Error" Instead of Actual SOAP Fault solved the issue

  • 1.  Issue: WebSphere Returning "Internal Error" Instead of Actual SOAP Fault solved the issue

    Posted 30 days ago
    Issue: WebSphere Returning "Internal Error" Instead of Actual SOAP Fault
     
    Problem Description
     
    When the SOAPHandler returns a SOAP Fault message, the client receives:
     
    <soapenv:Fault>
      <faultcode>soapenv:Server</faultcode>
      <faultstring>Internal Error</faultstring>
      <detail/>
    </soapenv:Fault>
     
     
    instead of the expected detailed fault such as:
     
    <faultstring>ORA-01031: insufficient privileges</faultstring>
     
     
    WebSphere logs show:
     
    E org.apache.axis2.engine.AxisEngine receive An error was detected during JAXWS processing
    org.apache.axis2.AxisFault: An error was detected during JAXWS processing
        at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:208)
     
    Root Causes
    1️⃣ Fault Unification Feature (Default WebSphere Behavior)
     
    WebSphere masks all SOAP fault messages by default (webservices.unify.faults = true), replacing custom faults with a generic "Internal Error".
     
    2️⃣ SOAP Version Mismatch (Content-Type Header)
     
    If the outbound or custom response is using SOAP 1.2 (Content-Type: application/soap+xml)
    but the WebSphere endpoint expects SOAP 1.1 (Content-Type: text/xml),
    Axis2 cannot parse the message and raises the same "Internal Error".
     
    This often happens when:
     
    The handler or external system manually sets SOAP XML with the wrong namespace or header.
     
    A proxy or middleware modifies the Content-Type header.
     
    Solution
    ✅ Fix 1 - Disable Fault Unification
     
    Go to:
    Servers → Server Types → WebSphere application servers → Application Servers → MXServer → Process Definition → Java Virtual Machine → Custom Properties
     
    Create a new property:
     
    Name: webservices.unify.faults
     
    Value: false
     
    Save to master configuration
     
    Restart the server
     
    In a cluster environment, apply this to all members.
     
    ✅ Fix 2 - Ensure Correct SOAP Version / Content-Type
     
    Check your outgoing or handler-generated SOAP response headers:
     
    For SOAP 1.1, set:
     
    Content-Type: text/xml; charset=utf-8
     
     
    For SOAP 1.2, set:
     
    Content-Type: application/soap+xml; charset=utf-8
     
     
    If your WSDL uses:
     
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
     
     
    → You must use SOAP 1.1 (text/xml).
     
    If your WSDL uses:
     
    <soap12:binding style="document" transport="http://www.w3.org/2003/05/soap/bindings/HTTP/"/>
     
     
    → Then SOAP 1.2 (application/soap+xml) is required

    #Administration
    #Analytics
    #Architecture
    #Assets
    #CivilInfrastructure
    #Customizations
    #EndUser
    #EverythingMaximo
    #HSE/OilandGas
    #Infrastructure
    #Integrations
    #Inventory
    #IoT
    #LifeScience/Calibration
    #Linear
    #MaximoApplicationSuite
    #MaximoForAviation
    #MaximoUserGroups
    #Mobility
    #Nuclear
    #Procurement
    #Reporting
    #Scheduling
    #Security
    #ServiceProvider
    #Spatial
    #Transportation
    #Utilities
    #WorkCenters
    #WorkManagement
    #MaximoVisualInspection
    #Predict
    #Monitor
    #Health
    #Assist
    #Safety

    ------------------------------
    Munikrishnan Raji
    comm-it
    ------------------------------