Mapping SOAP Fault during synchronous SOAP call

We are building a mediated service scenario where PI is brokering a synchronous SOAP call, without changing any of the information being sent or received (the mappings use the same source and target data types with no transformations).  When the service is successfully executed everything works as expected, but when the target service returns a SOAP fault, PI appears to be wrapping the fault in a separate fault before returning it to the client.  Why is this happening?  Is there a way to simply return the SOAP fault to the client without adding the additional wrapper?
Here is the fault received from the target service when called directly:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Header/>
   <soapenv:Body>
      <soapenv:Fault>
         <faultcode>Missing_Required_Data</faultcode>
         <faultstring>**Required data is invalid : Dealer Country**</faultstring>
      </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope>
Here is the fault received from the mediated PI service call:
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP:Body>
      <SOAP:Fault>
         <faultcode>SOAP:Server</faultcode>
         <faultstring>Server Error</faultstring>
         <detail>
            <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
               <context>XIAdapter</context>
               <code>ADAPTER.JAVA_EXCEPTION</code>
               <text>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessagingException: XIAdapterFramework:GENERAL:com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: **Required data is invalid : Dealer Country**
     at com.sap.aii.adapter.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:1161)
     at sun.reflect.GeneratedMethodAccessor948.invoke(Unknown Source)
            </s:SystemError>
         </detail>
      </SOAP:Fault>
   </SOAP:Body>
</SOAP:Envelope>
Why aren't they the same?

are diferents coz the first is a fault message and the second is a exception message.
to send back the fault message define a fault message for both structure and map them in a new message mapping. later in the operation mapping or interface mapping  (depends of the pi version) under fault message or fault mappinng (i dont remember) tab assisg the fault message mapping.
thats all you need.

Similar Messages

  • Access to SOAP header in synchronous SOAP response?

    Hi,
    Scenario: message received via synchronous SOAP adapter call.
    In the response which is sent back to the sender i can influence the SOAP body but not the SOAP header.
    Is there a possibility to manipulate/add/map the SOAP header in synchronous response messages?
    Thank you very much in advance for your hints.
    Greetings
    Michael

    Hi Christophe,
    per default PI is sending back something like this
    <SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'>
         <SOAP:Header/>
         <SOAP:Body>
              Payload, which can be accessed via mapping
         </SOAP:Body>
    </SOAP:Envelope>
    but required are some fields in the Header tag like:
    <SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'>
         <SOAP:Header>
                                   <SOAP:ABC>date</SOAP:ABC>
         </SOAP:Header>
         <SOAP:Body>
              Payload, which can be accessed via mapping
         </SOAP:Body>
    </SOAP:Envelope>
    Greetings
    Michael

  • Unable to parse soap fault due to SOAP version

    The business logic deployed to my Weblogic server invokes a 3rd party web service. When the 3rd party web service throws a soap fault, the web service client fails to parse it:
    SOAPFaultException - FaultCode [[http://schemas.xmlsoap.org/soap/envelope/]env.Server <http://schemas.xmlsoap.org/soap/envelope/%5denv.Server> <http://schemas.xmlsoap.org/soap/envelope/%5denv.Server> ] FaultString [RMSX1000:An unrecoverable system error has occured. please contact RMS support at [email protected] Message > [0]. [ java.rmi.RemoteException: /app/bea103/user_projects/domains/novella/<unknown>:0: error: com.bea.xml.XmlException: java.lang.IllegalArgumentException nested exception is:
    com.bea.xml.XmlRuntimeException: /app/bea103/user_projects/domains/novella/<unknown>:0: error: com.bea.xml.XmlException: java.lang.IllegalArgumentException:/app/bea103/user_projects/domains/novella/<unknown>:0: error: com.bea.xml.XmlException: java.lang.IllegalArgumentException nested exception is:
    com.bea.xml.XmlRuntimeException: /app/bea103/user_projects/domains/novella/<unknown>:0: error: com.bea.xml.XmlException: java.lang.IllegalArgumentException ]] FaultActor [NO ACTOR] Detail [<detail>
    I used a network packet analyzer and found out that the soap fault structure is different as the 3rd party use the soap 1.1 implementation which has a different structure. My question is how do I generate the client stubs for a specific version (as currently they appear to be generated for Soap 1.2)? I reviewed the clientgen Ant task documentation and found no clue.
    I think I may try to use stub._setProperty(WLStub.CONVERSATION_VERSION_PROPERTY, WLStub.CONVERSATION_VERSION_ONE) or some of its properties and see it that works - documentation is unclear.
    Edited by: user8651233 on Oct 15, 2009 1:02 PM

    I used a network packet analyzer and found out that the soap fault structure is different as the 3rd party use the soap 1.1 implementation which has a different structureAre you using soap 1.1 when you invoke the service?

  • Handling of SOAP Faults in SOAP Clients consuming PI Web services

    Hi there,
    the following is in regards to SOAP fault error handling in a SOAP client that consumes a Web Service published by PI.
    I have been reading a number of threads and blogs in regards to this topic and I am still left with some open questions which I hope to get some final answersclarifications through this thread.
    In particular the blogs
    Handling Web Service SOAP Fault Responses in SAP NetWeaver XI      - Handling Web Service SOAP Fault Responses in SAP NetWeaver XI
    XI: Propagation of meaningful error information to SOAP Client     - XI: Propagation of meaningful error information to SOAP Client
    have caused by attention.
    Both of these threads are realating to the Fault Message type one can use to return errors back to a SOAP Client (.Net, Java, etc.).
    In our scenario we published a number of Web Services through PI that provide functionality to integrate with an R3 back-end system using inbound ABAP Proxies.
    The services are standardised and will be consumed by a number of .NetJava applications and systems. The reason for the use of ABAP proxies is the customer specific application logic that is executed in the backend system. The Web services are synchronous and don't use ccBPM in the middle. Transformations are performed in PI combined with various lookups to set default values before the message is passed into the ABAP Framework of the R3 back-end system. The lookups are done against the R3 back-end system using the PI RFC Lookup feature.
    The inbound proxies currently return application errors as part of the response message back to the SOAP client. For more critical errors we introduced the use of Fault message types as the method to return the information back to the SOAP Client. This is all working satisfactory.
    The questions I have are as follows.
    1. When an error occurs at the IE level (e.g. mapping error), ABAP Proxy framework level (e.g. conversion from XML to ABAP format) or Adapter Framework level (Adapter releated error) a different SOAP fault message structure is returned to the SOAP Client than the one    used for the application errors. The SOAP fault message structure used in this case is the standard SOAP fault used by PI to return system errors back to the caller. For those SOAP fault messages there is no payload generated that could be mapped to the SOAP fault structure used for the application errors. This would be preferrable as there would be only one Fault message structure used for both inbound ABAP proxy generated fault messages and PI generated fault messages.
    Also the error messages generated by PI can be quite cryptic and difficult to interpret at the client end and could be filtered     ranslated during message mapping if the payload of the PI generated SOAP fault message could be accessed in a message mapping.
    Point 3 of the above thread 2759 indicates that this would be possible but doesn't outline how. Could somebody please clarify this for me as I don't believe that this is really possible ???.
    My idea instead was to use the PI SOAP fault message structure to also return application errors. Therefore I would create a Fault message type that matches the PI SOAP fault structure. This would enable the SOAP Client to handle only one SOAP Fault error structure. Would that be something to look into instead ?????.
    2. We have been looking at using the integrated WEB AS SOAP adapter instead of using the AF Sender SOAP adapter. While playing with this we encountered differences in the content returned through the SOAP fault generated by PI. A sample is below. Shouldn't the content of these SOAP faults be the same if the error that caused it is the same. Also the SOAP fault returned by the IE SOAP adapter is much more    useful in this particular case. Both errors below are the same, a conversion error from XML to ABAP took place in the inbound ABAP proxy framework of the back-end system.
    SOAP fault returned when using SOAP Sender adapter of AF
    <!see the documentation>
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context>XIAdapter</context>
                   <code>ADAPTER.JAVA_EXCEPTION</code>
                   <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIProxy:PARSE_APPLICATION_DATA:
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:455)
         at com.sap.aii.af.ra.ms.impl.core.queue.consumer.CallConsumer.onMessage(CallConsumer.java:134)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:916)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    SOAP fault using integrated SOAP adapter of PI IE
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>System Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context/>
                   <code>ABAP.PARSE_APPLICATION_DATA</code>
                   <text>Error during XML => ABAP conversion (Request Message; error ID: CX_ST_DESERIALIZATION_ERROR; (/1SAI/TXSBE20FF604BAFEF8D990A XML Bytepos.: 564  XML Path: ns1:CreatePORequest(1)POHEADER(2)COMP_CODE(1) Error Text: Data loss occurred when converting ############################## Kernel ErrorId: CONVT_DATA_LOSS))</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    I have been reading threads for hours without being able to find one that answers questions 1 or provides a blog that outlines the approach one should take for error handling in SOAP clients that consume PI Web Services (and covers both PISystem generated faults and faults raised in Proxies).
    There may already be a blog or thread and I just missed it.
    Any comments are welcome.
    Thanks. Dieter

    Hi Dieter,
    As Bhavesh already mentioned fault messages are used for application errors. The same is described in SAP XI help:
    http://help.sap.com/saphelp_nw04/helpdata/en/dd/b7623c6369f454e10000000a114084/frameset.htm
    In case of system error (e.g. field length too long in proxy call or error in XI/PI mapping) there seems to be no standard way of handling it and propagating the response to the consumer of webservice.
    Each system error is not recognized by SOAP adapter and SOAP adapter exception is raised.
    The only bizzare solution that I can see is developing an adapter module and transport wrong message to standard fault message before delivering it to adapter engine:
    http://help.sap.com/saphelp_nw04/helpdata/en/a4/f13341771b4c0de10000000a1550b0/frameset.htm
    Kind regards,
    Wojciech
    btw nice thread

  • PI 7.1 Adapter Module Development - Identify SOAP Fault Message

    Hi Experts,</br>
    here's a PI 7.1 Adapter Module Development issue I hope you can help me to resolve. It's about identifying SOAP fault messages.</br>
    </br>
    Scenario at a glance:</br>
    Adapter Modules placed in the modules chain at request and response time in a synchronous Scenario:</br>
    - Request: SOAP Axis to RFC </br>
    - Response and Fault Response: RFC to SOAP Axis</br>
    </br>
    The issue is how to identify SOAP fault message in SOAP Axis Adapter Module in the response message:</br>
    The client gets SOAP fault messages like the follwong one:</br>
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <ns1:exception xmlns:ns1="http://typen.geschaeftsstelle.pab.barmer.de">
                   <ns1:errortext>bla bla bla ...</ns1:errortext>
                </ns1:exception>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </br>
    </br>
    But when trying to access the tags faultcode and/or faultstring in the adapter module via xPath expressions I do not get them. Obviously the SOAP Fault tags are built AFTER the adapter module has been passed. So my question is:</br>
    How can I clearly/uniquely detect a SOAP fault response message (and distinguish it from a "normal" response message) in my SOAP Axis Adapter Module?</br>
    </br>
    I tried it the following way:</br>
    </br>
    </br>
    // Check Message Payload for SOAP Fault Message via xPath expressions</br>
    ...</br>
    // SOAP Fault Code</br>
    zv_xPression = zc_constXPattern.replaceFirst("&", "faultcode");</br>
    zv_soapFaultCode = XPathAPI.eval(zv_doc, (String) zv_xPression).toString();</br>
    // SOAP Fault String</br>
    zv_xPression = zc_constXPattern.replaceFirst("&", "faultstring");</br>
    zv_soapFaultString = XPathAPI.eval(zv_doc, (String) zv_xPression).toString();</br>
    // check for SOAP Fault Message</br>
    if (zv_soapFaultCode.equals("") && zv_soapFaultString.equals("")) {</br>
         // Create Audit Log entry - NOT a SOAP Fault Message</br>
         zv_msgText = zc_constModuleName + " 0190: xPath - OK! This message is NOT a SOAP Fault Message";</br>
         zv_audit.addAuditLogEntry(zv_msgKey, AuditLogStatus.SUCCESS, zv_msgText);</br>
         zv_faultCheck = false;</br>
    }</br>
    else {</br>
         ...</br>
         // Create Audit Log entry - SOAP Fault Message</br>
         zv_msgText = zc_constModuleName </br>
              + " 0200: xPath - this message is a SOAP Fault Message. " </br>
              + " - Faultcode is: " + zv_soapFaultCode </br>
              + " - Faultstring is: " + zv_soapFaultString; </br>
         zv_audit.addAuditLogEntry(zv_msgKey, AuditLogStatus.ERROR, zv_msgText);</br>
         ...</br>
    }</br>
    ...</br>
    </br></br>
    But zv_soapFaultCode and zv_soapFaultString are always empty (with other payload tags this coding works fine).</br>
    </br>
    Any ideas? </br></br>
    Thanx very much in advance!</br></br>
    Regards,</br>
    Volker

    Hi Alex!
    Like already mentioned I solved my problem by identifying the SOAP exception with the messageClass attribute of the PI message header. Acess code:
    try {
    String zv_msgClass = zv_piMsg.getMessageClass().toString();
    } catch (Exception e) {
    zv_msgText = zc_constModuleName
    + " E0110: Message processing terminated."
    + " Reason: Error while getting MessageClass "
    + zv_dataSource
    + e;
    // create trace and audit log entry (severity ERROR) for exception
    zv_location.errorT(ZV_SIGNATURE, zv_msgText);
    zv_audit.addAuditLogEntry(zv_msgKey, AuditLogStatus.ERROR, zv_msgText);
    ModuleException me = new ModuleException(e);
    zv_location.throwing(ZV_SIGNATURE, me);
    e.printStackTrace();
    throw me;
    }     // end of try-catch-block
    But I do not think this will solve your problem. I am almost sure, that something in your Axis configuration is wrong/missing. If a handler cannot be instatiated then it really may be missing. Have a look at defaultTrace.trc. Maybe you will find more suitable information about the root cause of your problem. Also have a look at NWA under software components and/or application modules if you can find/see your modules.
    But there is a general issue when trying to catch PI fault messages. If e.g. the requestor tries to login with wrong userid/pasword, then you will have no chance to catch this kind of error - at least as far as I know. Because in this very early stage of PI message processing no module is called.
    One last question: Did you develop your own Adapter or just an adapter module? In the first case: Is your adapter started and healthy? Have a look at RWB -> communication channel monitoring.
    Regards,
    Volker

  • OSB: Attach SOAP Header for SOAP Fault

    Hi,
    Is there a way to return OSB SOAP Fault with custom SOAP Header?
    Currently, when SOAP Fault happens, SOAP Header is not returned. I would like to insert some elements in the SOAP header and return when SOAP Fault happens.
    Thanks.

    Hi Eric,
    Thanks for your tips. It was helpful!
    I've managed to insert custom SOAP header to a SOAP fault.
    In service error handler,
    1. Construct custom header and replace header variable content
    2. Replace body content with fault variable
    3. Reply with failure
    Thanks.

  • Throw a new soap fault

    Hello to Everyone,
    I'm a OSB 10.3.1 newbie, and i want to throw a new soap fault.
    The problem is that the error code & error message comes in the body of the response message (not in a soap fault). From this response i capture the errors (code & message) and assign them to context variables.
    How can i throw a new soap fault with the values of the context variables?.
    Thanks

    Hi,
    The body of the response is in fact where you would create the soap fault (for SOAP services of course). The only trick is that the child element of the body variable must be a <soap-evn:Fault> element.
    What I've done in some projects is define an XQuery transformation to create the soap fault. The soap fault has a detail element where you can add your custom exceptions (those defined in your WSDL). As input arguments to the XQuery transformation you can send the error code and message that come in the fault variable plus any other arguments you might want to add.
    For example (I'm omitting the namespace declarations, variable declarations that the transformation should have):
    declare function xf:createSOAPFault($errorCode as xs:string, $errorMessage as xs:string, $operationId as xs:string)
        as element(env:Fault) {
    <env:Fault>
        <faultcode>env:Server</faultcode>
        <faultstring>{ $errorMessage }</faultstring>
        <detail>
            <ns0:MyException>
                <ns0:operationId>{ $operationId }</ns0:operationId>
                <ns0:errorCode>{ $errorCode }</ns0:errorCode>
                <ns0:errorMessage>{ $errorMessage }</ns0:errorMessage>
            </ns0:MyException>
        </detail>
    </env:Fault>
    };If your client is using JAX-WS for example, you could do something like this:
    try {
       // invoke ws
    } catch (MyException e) {
        log("Operation ID: " + e.getOperationId() + ", Error Code: " + e.getErrorCode() + ", Message: " + e.getErrorMessage());
    }

  • Synchronous RFC -- SOAP Scenario: problem with SOAP Response/Fault Mapping

    Hi,
    I've a synchronous RFC --> PI --> SOAP Scenario. The problem is that the message structure of the sending RFC doesn't match the Webservice Structure.
    The (SAP standard) RFC has just a Request / Response message structure. Part of the Response Message structure is a exception structure.
    The Webservice has a Request / Response message structure and in case of an error I get a SOAP:Fault.
    Problem now is that I cannot configure that scenario without usage of BPM as I will have to map SOAP:Response or SOAP:Fault to the RFC Response structure.
    Has anybody another idea to do that synchronous scenario (with usage of message mapping) without BPM?
    BR
    Holger

    1)
    you maus define 3 mapping.
    1)request
    2)response
    3)Fault
    in Interface mapping define at response boths (2-3) mapping. its clear??
    2)
    otherwise sometjhing is not clear, why do you want fault?? why dont you  get only response message. we implement this kind of response:
    <response_MT>
    <ID> (error ID)
    <system> (target system) 
    <error> (Error Description)
    </response>
    by this way fault message is not needed. but if you must have it just follow the top of message else, propose second.
    Thanks
    Rodrigo
    Thanks
    Rodrigo
    Edited by: Rodrigo Pertierra on Feb 25, 2008 11:52 AM

  • Soap Fault mapping issue

    Hi,
    I have a synchronous scenario of (request) Proxy --> XI --> SOAP and (response) SOAP --> XI --> Proxy.  I am having an issue returning the application soap faults back to the sender system.  When I enter invalid data while testing this webservice call with a soap client directly without XI I get a soap fault response:
    <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:Server.generalException</faultcode>
             <faultstring>Login failed</faultstring>
             <detail>
                <LoginFault xmlns="NAMESPACE">
                   <exceptionCode>710</exceptionCode>
                   <exceptionMessage>Login failed</exceptionMessage>
                </LoginFault>
                <ns1:exceptionName xmlns:ns1="http://xml.apache.org/axis/">NAMESPACE</ns1:exceptionName>
             </detail>
          </soapenv:Fault>
       </soapenv:Body>
    </soapenv:Envelope>
    When testing this through XI, the response message after the Soap call is returning the following soap fault in XI payload:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!--  XML Validation Inbound Channel Response  -->
    <LoginFault xmlns="NAMESPACE">
      <exceptionCode>710</exceptionCode>
      <exceptionMessage>Login failed</exceptionMessage>
    </LoginFault>
    Notice just the detail body exists in the payload instead of the soap evelope and body, which I read is stripped off within XI in the case of application errors.  I have setup a fault message mapping to tie the wsdl login fault with the standard fault message type and included this in the service interfaces and operations mapping.  When the soap fault happens within XI I am getting the following mapping error: 
    NO_MAPPINGPROGRAM_FOUND:  Mapping program is not available in runtime cache:
    I am expecting the fault mapping to be executed in this case but doesn't seem to be found.  Any ideas why this mapping error is occuring and not being directed to my fault message mapping?  Is the mapping expecting the soap envelope and body to be included in the payload?
    Any suggestions would be appreciated.
    Thanks,
    Nate

    Here are the errors I am seeing within the sxmb_moni transaction:
    Call adapter exception:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Call Adapter
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">NO_MAPPINGPROGRAM_FOUND</SAP:Code>
      <SAP:P1>Object ID 35F8008AA0A830FC93FC221572A15ABD Software Component DC6FB8300EDE11DC8E05DB6DA3E77028</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:Stack>Mapping program is not available in runtime cache: Object ID 35F8008AA0A830FC93FC221572A15ABD Software Component DC6FB8300EDE11DC8E05DB6DA3E77028</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Response Message Error:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  XML Validation Inbound Channel Response
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="UNKNOWN">APPLICATION_ERROR</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>application fault</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="NAMESPACE REMOVED">LoginFault</SAP:ApplicationFaultMessage>
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    and response message payload:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  XML Validation Inbound Channel Response
      -->
    - <LoginFault xmlns="NAMESPACE REMOVED">
      <exceptionCode>710</exceptionCode>
      <exceptionMessage>Login failed</exceptionMessage>
      </LoginFault>

  • SOAP Fault:javax.xml.rpc.soap.SOAPFaultException: Exception during processi

    Hi: We are using weblogic81 sp3. Other developers in my office ran the same porgram and got no errors.
    My startWebLogic.cmd are configured exactly same as theirs.
    My startWebLogic classpath:
    set CLASSPATH=%WL_HOME%\server\lib\ojdbc14.jar;%WL_HOME%\server\lib\CR122067_81sp3.jar;%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%\jre\lib\rt.jar;%WL_HOME%\server\lib\webservices.jar;%CLASSPATH%
    I keep getting this webservice error.
    SOAP Fault:javax.xml.rpc.soap.SOAPFaultException: Exception during processing: w
    eblogic.xml.schema.binding.DeserializationException: mapping lookup failure. typ
    e=['java:language_builtins.util']:ArrayList schema context=TypedSchemaContext{ja
    vaType=[Ljava.lang.Object;} (see Fault Detail for stacktrace)
    Detail:
    <detail>
    <bea_fault:stacktrace xmlns:bea_fault="http://www.bea.com/servers/wls70/webse
    rvice/fault/1.0.0">weblogic.xml.schema.binding.DeserializationException: mapping
    lookup failure. type=['java:language_builtins.util']:ArrayList schema context=T
    ypedSchemaContext{javaType=[Ljava.lang.Object;}
    at weblogic.xml.schema.binding.RuntimeUtils.lookup_deserializer(RuntimeU
    tils.java:461)
    thank you for your help

    we used castor to do xml mapping

  • ABAP proxy exception to SOAP fault and vice versa not getting mapped

    Hi there,
    I have these scenario's: ABAP proxy to SOAP (AXIS framework) and the other way around, synchronous, using AAE.
    When declaring the Synchronous Service interfaces we also defined error message types in order to pass system and application exceptions back to the service consumers.
    The behavior we are observing is as follows;
    When an exception is generated on the ABAP proxy, the error message type is correct generated and filled with the corresponding values in the ABAP proxy runtime. However, when the response arrives at the service consumer, it only contains a SOAP fault filled with some kind of generic PI mapping exception information.
    1. Why is the original ABAP proxy exception not mapped/passed into the SOAP response?
    2. What can we do in order to change that situation?
    3. Does it has to do with the use of the AAE - Advanced Adapter Engine or the AXIS framework?
    PS: We have performed a test of the Operation Mapping - OM using the ABAP exception as input and it did work correctly, so the error structure seems to be Ok.
    Many thanks for your replies.
    Edited by: Roberto Viana on Jul 26, 2010 8:30 PM

    Problem was caused by some differences in namespaces between source and target.

  • SOAP fault - How to log error in response message map

    Hi,
    I have a scenario ABAP Proxy <-> XI <-> SOAP.
    Occassionally there is an issue with communication to the destination system and an HTTP 500 Error is returned. I assume this is due to a system related error and it is returned as a SOAP Fault as opposed to a SOAP response with payload.
    How do I get this "HTTP-500" error into my message map to return to the calling system ?
    I have looked at Fault Messages but need to know if these are relevant for the SOAP Adapter and how they can be utilised ?
    Thanks for any help.
    Kind regards
    Colin.

    SOAP fault message not in correcto format to allow an application error to be caught.

  • Error when calling Synchronous SOAP Receiver

    Hi,
    When I am calling a synchronous Web service using SOAP Receiver adapter I am getting the following error:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Inbound Message
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIAdapter</SAP:Category>
      <SAP:Code area="PARSING">ADAPTER.SOAP_EXCEPTION</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>soap fault: System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction: ECAPISoap. at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest() at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message) at System.Web.Services.Protocols.SoapServerProtocol.Initialize() at System.Web.Services.Protocols.ServerProtocol.SetContext(Type type, HttpContext context, HttpRequest request, HttpResponse response) at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Could anyone tell what might be the issue?

    Satish,
    Now I am getting the following error:
    soap fault: System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction: . at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest() at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message) at System.Web.Services.Protocols.SoapServerProtocol.Initialize() at System.Web.Services.Protocols.ServerProtocol.SetContext(Type type, HttpContext context, HttpRequest request, HttpResponse response) at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)</

  • Synchronous SOAP: Get fault message on ABAP side

    Hi,
    I've a synchronous ABAP Proxy => PI 7.11 => SOAP scenario.
    The SOAP receiver is a third party application using AXIS 1.4.
    When I call the SOAP receiver with bad input via SOAP UI I receive an error message like that:
    <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:Server.userException</faultcode>
             <faultstring>com.ZZZ.exception.ZZZException: Employee not found: 9999911111</faultstring>
             <detail>
                <com.ZZZ.exception.ZZZException xsi:type="ns1:ZZZException" xmlns:ns1="http://exception.ZZZ.com"/>
                <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">server.YYY.com</ns2:hostname>
             </detail>
          </soapenv:Fault>
       </soapenv:Body>
    </soapenv:Envelope>
    When I call the SOAP receiver through my ABAP proxy, I just get this exception message in SXI_MONI:
    <?xml version="1.0" encoding="UTF-8"?>
    <com.ZZZ.exception.ZZZException xmlns:ns1="http://exception.ZZZ.com"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns1:ZZZException"/>
    Nevertheless I see the error in SXI_MONI:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!-- XML Validation Inbound Channel Response -->
    <SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
        <SAP:Category>Application</SAP:Category>
        <SAP:Code area="SOAP">FAULT</SAP:Code>
        <SAP:P1>http://schemas.xmlsoap.org/soap/envelope/</SAP:P1>
        <SAP:P2>Server.userException</SAP:P2>
        <SAP:P3/>
        <SAP:P4/>
        <SAP:AdditionalText>com.ZZZ.exception.ZZZException: Employee not found: 9999911111</SAP:AdditionalText>
        <SAP:ApplicationFaultMessage namespace="">com.ZZZ.exception.ZZZException</SAP:ApplicationFaultMessage>
        <SAP:Stack/>
        <SAP:Retry>M</SAP:Retry>
    </SAP:Error>
    In the WSDL of the SOAP receiver there's just the ZZZException without fields faultcode or faultstring:
    <complexType name="ZZZException">
      <sequence/>
    </complexType>
    Do I have to add the fields faultcode or faultstring to the WSDL myself?
    I tried the following, but it didn't work:
    <complexType name="ZZZException" abstract="true">
        <xsd:sequence>
            <xsd:element name="faultstring" type="soapenc:string">
        </xsd:sequence>
    </complexType>
    Thanks in advance!

    Hi Eddie -
    Do I have to add the fields faultcode or faultstring to the WSDL by myself?
    >>> No. Even though you add - it doesn't work as it's the webservice which returns the message.
    For sending the fault messages, Have a look at the below blog -
    Handling Web Service SOAP Fault Responses in SAP NetWeaver XI

  • Synchronous SOAP call from XI without BPM....

    Hi All,
    Is it possible to use the (File - XI - SOAP) Synchronous SOAP call from XI with out BPM. to trace the error messages. If yes then how it can be achived in XI.
    Thanks,
    Jane

    Hi,
    You will get either a system error/application error raised if there is a problem processing the SOAP request without the need for BPM.
    You can then raise an alert from the RWB if this occurs.
    If all is OK with processing, you will get the standard chequered flag.
    Cheers
    Colin.

Maybe you are looking for

  • Cross references in structured documents

    Hi there, Perhaps someone of you has a tip for me regarding cross references in structured FrameMaker. The problem we have at the moment: We were working with FM8 structured. But - as we worked with FM documents most of the times - very often the xml

  • Subcontracting with project stock

    Hi All, When using project stock as we cannot issue components to the subcontractor in the subcontracting process we have created a new storage location for the subcontractor. So when the components will be sent to the subcontractor we will move the

  • Purchasing External Hard Drive

    My computer does not have enough space to hold of my music/pictures/documents and I was looking into purchasing an external hard drive.  Does anyone suggest a brand to buy, how much memory I would need, and an estimated cost?  I know the apple store

  • PO cancellation in SUS derives to.... ? :-)

    Hi guys, Quick question for SRM Gurus and SUS people =) - What happens when the vendor cancels a PO in SUS ? I would like to know if the "canceled items" appear again in order to create another PO. In case of affirmative, Is XI mandatory for SUS righ

  • I can't see "Visualize Spots"

    Running LR5 on Win7, I can't see "Visualize Spots." I select the Spot Removal tool, but the Visualize Spots option does not appear below the preview. I can turn it on with the "A" keyboard shortcut, and the display does change to show the tool in act