0 Replies Latest reply: Feb 25, 2010 5:27 PM by 753430 RSS

    Oracle SOA Suite - SOAP Fault content not being returned

    753430
      It starts with a fairly standard scenario: from within a BPEL process in Oracle SOA Suite, I’m making a call to an external web service. The not-so-standard part: the owner of the external web service has decided to return all errors in the form of a SOAP fault. Unfortunately, this error schema is not included in the WSDL. If we call the external web service directly (via SOAPUI, for example), we get the following, including a nice explanation of why it errored out:

      <soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:err="error.xml.common">
      <faultcode>soapenv:Server</faultcode>
      <faultstring>Undefined</faultstring>
      <detail>
      <err:ErrorList>
      <err:Error>
      <err:Application>CIA</err:Application>
      <err:Code>1031</err:Code>
      <err:Description>Field value is invalid Credit Card Number V failed mod10 check</err:Description>
      <err:ServerTime>2010-02-25T17:37:38.472-05:00</err:ServerTime>
      </err:Error>
      <err:StackTrace>subscription.memberservices.common.exception.ServiceInvocationException: 1031~Field value is invalid Credit Card Number V failed mod10 check
      at subscription.memberservices.common.client.http.CiaHttpClient.checkForErrors(CiaHttpClient.java:120)
      at subscription.memberservices.common.client.http.CiaHttpClient.enroll(CiaHttpClient.java:50)
      at subscription.memberservices.na.processes.enroll.EnrollProcess.callCiaEnroll(EnrollProcess.jpd:1003)
      at subscription.memberservices.na.processes.enroll.EnrollProcess_wf$ImplControlSend14.invoke(EnrollProcess_wf.java:145)
      at com.bea.wli.bpm.runtime.Perform.execute(Perform.java:32)
      ... 38 more</err:StackTrace>
      </err:ErrorList>
      </detail>
      </soapenv:Fault>

      No matter what I try, however, I can’t fetch the information in the “detail” element above. When examining the audit trail in SOA Suite, I can only see this:

      <fault>
      <faultType>0</faultType>
      <remoteFault>
      <part name="summary">
      <summary>Undefined</summary>
      </part>
      <part name="detail">
      <detail>javax.xml.ws.soap.SOAPFaultException: Undefined</detail>
      </part>
      <part name="code">
      <code>null</code>
      </part>
      </remoteFault>
      </fault>


      It seems SOA Suite is “protecting” my service from the other SOAP fault elements instead of passing everything back, only passing the faultstring element. I even tried adding an ErrorList schema to match theirs but to no avail. Anyone out there have any experience, luck or ideas with this problem?

      Thanks for the assistance,
      Rob