Petals BC SOAP

Propagate partner's SOAP Fault "as is"

Details

  • Type: Bug Bug
  • Status: Resolved Resolved
  • Priority: Critical Critical
  • Resolution: Fixed
  • Affects Version/s: 4.0.3
  • Fix Version/s: 4.0.3
  • Component/s: None
  • Security Level: Public
  • Description:
    Hide

    We encountered some issues on the propagation of partner SOAP-Fault "as is".

    We have several project on which it works fine (eg the SOAP faults generated by the partners are propagated "as is") and several other on which this doesn't work. The only difference between the two kinds of projects is the following : on the first, the SOAP-provide is the last service called by the EIP, while on the other projects, their are more stuff to be called. Theoritically, theses steps should not be called, since the the SOAP provide should return a SOAP-Fault.

    By the way, the Fault we got in SOAPUI is the following :

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
    <soapenv:Fault>
    <faultcode xmlns:axis2ns1="http://schemas.xmlsoap.org/soap/envelope/">axis2ns1:Server</faultcode>
    <faultstring>A fault occurs during the petals treatment</faultstring>
    <detail>
    <soapenv:Fault xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>

    You should find enclosed a service assembly reproducing this issues, along with logs and soapUI project.

    Show
    We encountered some issues on the propagation of partner SOAP-Fault "as is". We have several project on which it works fine (eg the SOAP faults generated by the partners are propagated "as is") and several other on which this doesn't work. The only difference between the two kinds of projects is the following : on the first, the SOAP-provide is the last service called by the EIP, while on the other projects, their are more stuff to be called. Theoritically, theses steps should not be called, since the the SOAP provide should return a SOAP-Fault. By the way, the Fault we got in SOAPUI is the following : <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <soapenv:Fault> <faultcode xmlns:axis2ns1="http://schemas.xmlsoap.org/soap/envelope/">axis2ns1:Server</faultcode> <faultstring>A fault occurs during the petals treatment</faultstring> <detail> <soapenv:Fault xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> You should find enclosed a service assembly reproducing this issues, along with logs and soapUI project.
  • Environment:
    Petals ESB 3.1
    Petals SE-EIP forge customer veolia
    Petals BC-SOAP 4.0.3-SNAPSHOT
  1. AD009-RecupVersionPointInterventionSigma-soapui-project.xml
    (672 kB)
    Charles Casadei
    Tue, 3 Aug 2010 - 09:58:12 +0200
  2. log.txt
    (41 kB)
    Charles Casadei
    Tue, 3 Aug 2010 - 09:58:12 +0200
  3. sa-AD009-RecupVersionPointInterventionSigma-1.0.0-SNAPSHOT.zip
    (92 kB)
    Charles Casadei
    Tue, 3 Aug 2010 - 09:58:38 +0200
  4. sa-AD009-RecupVersionPointInterventionSigma-1.0.0-SNAPSHOT.zip.modded
    (167 kB)
    Charles Casadei
    Tue, 3 Aug 2010 - 09:58:38 +0200
  5. simplerLog.txt
    (16 kB)
    Charles Casadei
    Tue, 3 Aug 2010 - 09:58:12 +0200

Activity

Hide
noddoux added a comment - Fri, 27 Aug 2010 - 17:54:59 +0200

Fixed (cf PETALSBCSOAP-34 for the Axis 1 webservice stack compatibility)

Show
noddoux added a comment - Fri, 27 Aug 2010 - 17:54:59 +0200 Fixed (cf PETALSBCSOAP-34 for the Axis 1 webservice stack compatibility)
Hide
Charles Casadei added a comment - Fri, 20 Aug 2010 - 11:58:53 +0200

The proposed fix does not work. There is a trace in the BC-SOAP logs indicating that the BC has received a SOAP Fault from the partner, but this fault is not propagated, even with the latest version of the component.

Show
Charles Casadei added a comment - Fri, 20 Aug 2010 - 11:58:53 +0200 The proposed fix does not work. There is a trace in the BC-SOAP logs indicating that the BC has received a SOAP Fault from the partner, but this fault is not propagated, even with the latest version of the component.
Hide
noddoux added a comment - Wed, 18 Aug 2010 - 13:47:00 +0200

Change an Axis option to prevent Axis from transforming SOAP fault to Axis fault exception (when a partner service replies by a soap fault)

Be careful: The sub tags of <soapenv:Fault> are unqualified as below. Axis returns an empty fault if they are qualified (for example <soapenv:faultcode).

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Client</faultcode>
<faultstring>Cannot find the equipment record.</faultstring>
<detail>
<ns1:ExceptionInfoList xmlns:ns1="http://schemas.datastream.net/MP_functions">
<ns1:ExceptionInfo functionid="MP0302">
<ns1:Exception name="com.dstm.mp.businessprocess.asset.CannotFindEquipmentException">
<ns1:ReasonCode>1</ns1:ReasonCode>
<ns1:Message>Le système ne peut pas trouver l'enregistrement d'équipement.</ns1:Message>
</ns1:Exception>
</ns1:ExceptionInfo>
</ns1:ExceptionInfoList>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>

Show
noddoux added a comment - Wed, 18 Aug 2010 - 13:47:00 +0200 Change an Axis option to prevent Axis from transforming SOAP fault to Axis fault exception (when a partner service replies by a soap fault) Be careful: The sub tags of <soapenv:Fault> are unqualified as below. Axis returns an empty fault if they are qualified (for example <soapenv:faultcode). <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Client</faultcode> <faultstring>Cannot find the equipment record.</faultstring> <detail> <ns1:ExceptionInfoList xmlns:ns1="http://schemas.datastream.net/MP_functions"> <ns1:ExceptionInfo functionid="MP0302"> <ns1:Exception name="com.dstm.mp.businessprocess.asset.CannotFindEquipmentException"> <ns1:ReasonCode>1</ns1:ReasonCode> <ns1:Message>Le système ne peut pas trouver l'enregistrement d'équipement.</ns1:Message> </ns1:Exception> </ns1:ExceptionInfo> </ns1:ExceptionInfoList> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope>
Hide
noddoux added a comment - Tue, 3 Aug 2010 - 16:15:03 +0200

Waiting for more information from our customer

Show
noddoux added a comment - Tue, 3 Aug 2010 - 16:15:03 +0200 Waiting for more information from our customer
Hide
noddoux added a comment - Tue, 3 Aug 2010 - 16:14:42 +0200

The exception is not raised anymore, a SOAP-Fault is raised instead.

The Fault of the given mock is not properly propagated, because there are not Fault defined for this WebService.

Show
noddoux added a comment - Tue, 3 Aug 2010 - 16:14:42 +0200 The exception is not raised anymore, a SOAP-Fault is raised instead. The Fault of the given mock is not properly propagated, because there are not Fault defined for this WebService.

People

Dates

  • Created:
    Tue, 3 Aug 2010 - 09:52:04 +0200
    Updated:
    Fri, 27 Aug 2010 - 17:54:59 +0200
    Resolved:
    Fri, 27 Aug 2010 - 17:54:59 +0200