Generating SOAP Faults

Can I generate a SOAP fault and set the details (faultcode etc.) from a
JWS file created from with WLW?
Thanks,
Kevin Jones

Tracy,
Thanks for your response.
However, the SOAP 1.2 standard (as well as 1.1) state that
when using HTTP transports, a SOAP fault will result in the
server's response being set to 500 (Internal Server Error). So,
what gives?
Thanks,
-krish

Similar Messages

  • 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

  • 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" in scenario with ABAP proxy client

    Hello,
    I realized the scenario CRM40_Basis620(ABAP proxy client)->XI->File.
    XI:
    The sender communication channel is a XI adapter (Parameters: HTTP 1.0, XI 3.0, Integration Server, Security profile unchecked, Security level - HTTP).
    CRM:
    The proxy generation is ok.
    SLDCHECK is ok.
    All RFC destinations are ok.
    APPINT_200_620 for CRM was installed and configured well (I think so, but...).
    When I ran the ABAP proxy client on CRM, sxmb_moni(CRM) returned the text for the XML Message (Display-CallIntegrationServer-Payloads-TraceDocument):
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <SAP:TraceHeader xmlns:SAP="http://sap.com/exchange/MessageFormat">
      <Trace level="1" type="B" name="CL_XMS_TROUBLESHOOT-ENTER_PLSRV" />
      <Trace level="1" type="T">****************************************************</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">XMB entry processing</Trace>
      <Trace level="1" type="T">system-ID = EST</Trace>
      <Trace level="1" type="T">client = 300</Trace>
      <Trace level="1" type="T">language = E</Trace>
      <Trace level="1" type="T">user = BABKIN_RA</Trace>
      <Trace level="1" type="Timestamp">2007-08-06T13:55:12Z</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">****************************************************</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_UC_EXECUTE" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Message-GUID = DC4424A659314CF18F500002A541D0E7</Trace>
      <Trace level="1" type="T">PLNAME = SENDER</Trace>
      <Trace level="1" type="T">QOS = EO</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_ASYNC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Get definition of external pipeline = SENDER</Trace>
      <Trace level="1" type="T">Get definition of internal pipeline = SAP_SENDER</Trace>
      <Trace level="1" type="T">Generated prefixed queue name = XBTS0004</Trace>
      <Trace level="1" type="T">Setup qRFC Scheduler OK!</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Going to persist message + call qRFC now...</Trace>
      <Trace level="1" type="T">NOTE: The following trace entries are always lacking</Trace>
      <Trace level="1" type="T">- Exit WRITE_MESSAGE_TO_PERSIST</Trace>
      <Trace level="1" type="T">- Exit CALL_PIPELINE_ASYNC</Trace>
      <Trace level="1" type="T">Async barrier reached. Bye-bye !</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE" />
      <Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
      <Trace level="1" type="B" name="SXMS_ASYNC_EXEC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Starting async processing with pipeline SENDER</Trace>
      <Trace level="1" type="T">system-ID = EST</Trace>
      <Trace level="1" type="T">client = 300</Trace>
      <Trace level="1" type="T">language = E</Trace>
      <Trace level="1" type="T">user = BABKIN_RA</Trace>
      <Trace level="1" type="Timestamp">2007-08-06T13:55:12Z</Trace>
      <Trace level="1" type="T">----
    </Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_SYNC">
      <Trace level="1" type="T">Get definition of pipeline PID= SENDER</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID" />
    - <Trace level="1" type="B" name="PLSRV_CALL_INTEGRATION_SERVER">
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL" />
    - <!--  ************************************
      -->
    - <Trace level="1" type="B" name="CL_XMS_PLSRV_CALL_XMB-ENTER_PLSRV">
      <Trace level="1" type="T">URL for integration server read from global configuration</Trace>
      <Trace level="1" type="T">URL= http://SRMDEV.oao.sng:8011/sap/xi/engine?type=entry</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-SET_TECHNICAL_ROUTING_PROPERTY" />
    - <Trace level="1" type="B" name="CL_XMS_PLSRV_CALL_XMB-CALL_XMS_HTTP">
      <Trace level="1" type="System_Error">HTTP-client: error response= <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP:Header> </SOAP:Header> <SOAP:Body> <SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>SOAP:Client</faultcode><faultstring>Error during conversion of XI message</faultstring><faultactor>http://sap.com/xi/XI/Message/30</faultactor><detail><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="SECURITY">INBOUND_SECURE_LEVEL</SAP:Code><SAP:P1>DC4424A659314CF18F500002A541D0E7</SAP:P1><SAP:P2/><SAP:P3>HTTP</SAP:P3><SAP:P4/><SAP:AdditionalText/><SAP:ApplicationFaultMessage namespace=""/><SAP:Stack>Message DC4424A659314CF18F500002A541D0E7 was sent with ''. Channel configuration, however, requires 'HTTP' </SAP:Stack></SAP:Error></detail></SOAP:Fault> </SOAP:Body> </SOAP:Envelope></Trace>
      </Trace>
      <Trace level="1" type="System_Error">Exit XMB because of system error!</Trace>
      <Trace level="1" type="System_Error">System-Error: HTTP.HTTP_STATUS_CODE_NEQ_OK</Trace>
      <Trace level="1" type="System_Error">HTTP status code 500 : Error during conversion of XI message</Trace>
      <Trace level="1" type="B" name="CL_XMS_TROUBLESHOOT-ENTER_PLSRV" />
      </SAP:TraceHeader>
    I think the main problem is the parameter "HTTP Security level" for the channel, but not sure.
    Does anybody know where to find a solution?
    Regards,
    Roman

    Hi Roman
    There is no need for an XI adapter for client proxy.... we only use that for server proxies.
    Vaibhav

  • SOAP Fault

    Gurus,
    Can someone post and example on how and when to generate a SOAP fault ?
    I can potentially handle errors by plugging in error messages in the response message.
    When would once generate a soapfault instead of a response message ?
    has anyone on this groups implemented a web service or a soap based service operation or transaction?

    Ok, figured it out.
    The web service was not proviing a namespaced fault element.
    Fixed that and Apex now identifies the SoapFault

  • Handling custom soap fault

    I am trying to call a web service using the JPublisher generated pl/sql functions. The function works fine when there is no exception from the web service. However when the web service raises an exception (required by the business logic) I am receiving the following exception:
    ORA-29532: Java call terminated by uncaught Java exception: java.rmi.RemoteException: javax.xml.rpc.soap.SOAPFaultException:Error occurred at
    ORA-06512: at line 8
    This is a valid exception. However I want to handle the exception and read the ErrorCode and ErrorMessage passed in the custom SOAP fault message. I want to know if there is any provision in JPublisher (SQLJ/JDBC) to handle (Custom) SOAP fault messages.

    Hi,
    Do you have a solution for this problem? I'm dealing with the same problem:
    ORA-29532: Java call terminated by uncaught Java exception: java.rmi.RemoteException: javax.xml.rpc.soap.SOAPFaultException:
    regards, Hans

  • Soap fault message handling in XI

    Hi,
    I am using axis 1.4. SAP XI is my clinet. My wsdl file as below
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions targetNamespace="http://ws.example.com/service"
       xmlns:wns="http://ws.example.com/service"
       xmlns:tns="http://ws.exampleenterprise.com"
       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:types>
             <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
                    targetNamespace="http://ws.exampleenterprise.com"
                    elementFormDefault="qualified">
                     <xs:complexType name="SecrtySbj">
                             <xs:sequence>
                                     <xs:element name="usrname" type="xs:string"/>
                                     <xs:element name="pswrd" type="xs:string"/>
                             </xs:sequence>
                     </xs:complexType>
                     <xs:complexType name="AuthenticateRequest">
                             <xs:sequence>
                                     <xs:element name="secrtySbj" type="tns:SecrtySbj"/>
                             </xs:sequence>
                     </xs:complexType>
                     <xs:element name="authenticateRequest" type="tns:AuthenticateRequest"/>
                     <xs:complexType name="AuthenticateResponse" >
                             <xs:sequence>
                                     <xs:element name="sessnId" type="xs:string"/>
                             </xs:sequence>
                     </xs:complexType>
                     <xs:element name="authenticateResponse" type="tns:AuthenticateResponse"/>
                     <xs:complexType name="customFault">
                             <xs:sequence>
                                     <xs:element name="customCd" type="xs:int"/>
                                     <xs:element name="customMsg" type="xs:string" minOccurs="0"/>
                                     <xs:element name="customExcp" type="xs:string" minOccurs="0"/>
                             </xs:sequence>
                     </xs:complexType>
                     <xs:element name="customFault" type="tns:customFault"/>
             </xs:schema>
    </wsdl:types>
    <wsdl:message name="authRequest">
       <wsdl:part name="parameters" element="tns:authenticateRequest"/>
      </wsdl:message>
      <wsdl:message name="authResponse">
       <wsdl:part name="result" element="tns:authenticateResponse"/>
      </wsdl:message>
      <wsdl:message name="CustomFault">
       <wsdl:part name="CustomFault" element="tns:customFault"/>
      </wsdl:message>
      <wsdl:portType name="AuthenticateServiceInterface">
            <wsdl:operation name="authenticate">
        <wsdl:input message="wns:authRequest" />
            <wsdl:output message="wns:authResponse" />
        <wsdl:fault name="CustomFault" message="wns:CustomFault"/>
       </wsdl:operation>
      </wsdl:portType>
      <wsdl:binding name="AuthenticateServiceSoapBinding" type="wns:AuthenticateServiceInterface">
              <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
       <wsdl:operation name="authenticate">
        <soap:operation soapAction=""/>
        <wsdl:input>
         <soap:body use="literal"/>
        </wsdl:input>
            <wsdl:output>
                    <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="CustomFault" >
                       <soap:fault name="CustomFault" use="literal" />
               </wsdl:fault>
       </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="AuthenticateServiceService">
       <wsdl:port name="AuthenticateService" binding="wns:AuthenticateServiceSoapBinding">
        <soap:address location="http://10.236.14.6:8080/axis/services/AuthenticateService"/>
       </wsdl:port>
      </wsdl:service>
    </wsdl:definitions>
    Axis generates the soap fault as below in detail tag as below
    <ns1:customFault xmlns:ns1="http://ws.examplenterprise.com">
    <ns1:customCd>123</ns1:customCd>
    <ns1:customMsg>Password is wrong</ns1:customMsg>
    <ns1:customExcp>CustomException</ns1:customExcp>
    </ns1:customFault>
    They are getting error like below while getting the fault message.
    <SAP:ApplicationFaultMessage namespace="http://ws.exampleenterprise.com">customFault<SAP:ApplicationFaultMessage>
    Question: Why it is throwing "ApplicationFaultMessage" for fault messages? is there any error in wsdl file in defining the elements? or style has to be different? or is it an namespace issue in the wsdl?
    Note: They are able to do it sucessfull for the response message.

    Hi,
    The answer is in your Question itself.
    XI Sequence
    1.First step is to identify the wsdl:Message element with the namespace http://ws.example.com/service
    2.The next step is to go to the part element in http://ws.exampleenterprise.com and map the fault message.
    To be simple in your case http://ws.example.com/service is the namespace of Fault Message and http://ws.exampleenterprise.com is the namespace of the fault message payload  (Fault XML Message).
    So even though the Fault XML Message has the namespace http://ws.exampleenterprise.com ,but if the fault namespace doesnot come with http://ws.example.com/service then Fault will not be triggered and processed in XI.
    I hope you get the difference between the two namespaces used and the implications of them.
    Fault is entirely different from respone.
    Its like exception in java. If you donot catch the correct exception, will the exception raised be caught? Similarly if your SOAP service doesnot invoke the fault message with correct namespace (http://ws.example.com/service ), you cannot invoke/catch the fault message in XI.
    Regards,
    Sudharshan N A

  • Handling SOAP fault

    Hi,
    we call a web service from Netweaver 7.0 ABAP system through PI.
    So the scenario is Netweaver 7.0 ABAP -> PI -> Web service (HTTP SOAP)
    When the web service gives a SOAP Fault, it returns an error message which we want to be able to get in the ABAP calling system. However , when a SOAP Fault happens the mapping fails and the only exception we get back in the abap system is
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">CANNOT_READ_PAYLOAD</SAP:Code>
    How can we actually get the real fault message back to the abap system ... ?
    Thanks.

    Are you using the wsdl generated by XI or you have imported the service provider WSDL?
    If its from XI there is nothing more to do just do the inteface mapping with all the mapping (request , response and fault)
    In case you are using the service provide wsdl.... you have to import it into the external definitions of XI.
    Needs to create the interface and select the proper message for the interfaces and do the mapping and use it in interface mapping.
    Hope its clear

  • SOAP Fault for Application errors

    Hi,
    I would like to know whether it is OK to raise a SOAP fault for Application or system level exceptions. For example, I'm searching for a user with an ID as request , If the ID is invalid(User is not found) is it OK to raise the SOAP Fault.
    Let me know your views regarding the same.

    Hi,
    With the above explination , please see the below links..
    http://help.sap.com/saphelp_nw04/helpdata/en/d0/d4b54020c6792ae10000000a155106/content.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/7521a237-0701-0010-499b-b3285b789c0d
    /people/thomas.jung3/blog/2005/01/11/publishing-abap-webservices-to-an-external-uddi-server
    /people/sap.user72/blog/2005/11/17/xi-how-to-publish-wsdl-generated-from-xi-to-uddi
    Alert rule for SOAP adapter
    Monitoring problem in async SOAP receiver adapter
    Trapping AF errors using Alert framework in XI 3.0 SP13
    Alert Configuration
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/2f2a9fa2-0a01-0010-32ac-d281db722b86
    SOAP Lookup - /people/bhavesh.kantilal/blog/2006/11/20/webservice-calls-from-a-user-defined-function
    Regards
    Chilla..
    <i>Points rewarded if it is useful..</i>

  • BEA Soap Faults and differentiating them from Normal Soap Faults

    Hi,
    I've written a webservice client that interfaces with an external soap service. The external soap service generates custom soap exceptions that I am already handling by catching remote exception and then getting the cause from this remote exception to obtain the soap fault.
    However, I notice if for example the external webservice is down I get a BEA soap fault returned which is a different format to the faults returned from the external service
    IS there a way to easily identify a BEA generated fault from a standard soap fault without interoggating the soap fault manually?

    Added the charset to web-service.xml
    <web-services xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <handler-chains>
    <handler-chain name="SOAPHandler">
    <handler class-name="WebServiceHandler"/>
    </handler-chain>
    </handler-chains>
    <web-service name="xxx"
    uri="/uri"
    targetNamespace="http://xxxx"
    style="rpc"
    ignoreAuthHeader="true"
    exposeWSDL="true"
    charset="UTF-8">
    <components>
    <java-class name="mainClass"
    class-name="WebService">
    </java-class>
    </components>
    <operations>
    <operation method="x"
    component="mainClass" handler-chain="SOAPHandler">
    <params>
    <param name="data" class-name="java.lang.String" style="in" type="xsd:string"/>
    <return-param name="result" class-name="java.lang.String" type="xsd:string"/>
    </params>
    </operation>
    </operations>
    </web-service>
    </web-services>
    But it did not help.
    This is beas issue probably because, everything works when I invoke service from some other system.
    Any more ideas???

  • Modifying SOAP faults

    We'd like to include a bit of detailed information if a SOAP fault is generated by our Web services. Is there a good way to modify SOAP faults before returning them to the client ? Maybe intercepting them ?
    We are using Workshop 9.2 and XMLBeans ... appreciate any advice !!

    You can probably do it using a Servlet Filter ....

  • SOAP Faults

    Hi ,
    i´d like to wirte a Java Code so that if there´s an Exception my Webservice generates
    a Soap Fault Message and sends it back.
    I ´m using the messaging style WebService.
    Does anyone know how to do this.
    Thanks in advance
    Hakan

    Hi Hakan,
    I do not believe WLS 6.1 is coded to generate a <SOAP-ENV:Fault> element for exceptions
    raised in Message-style WebLogic Web Services. It does it for RPC-style WebLogic
    Web Services, however, it does not allow you to actually control the generation
    thereof.
    Regards,
    Mike Wooten
    "Hakan Akkaya" <[email protected]> wrote:
    >
    Hi ,
    i´d like to wirte a Java Code so that if there´s an Exception my Webservice
    generates
    a Soap Fault Message and sends it back.
    I ´m using the messaging style WebService.
    Does anyone know how to do this.
    Thanks in advance
    Hakan

  • Generate SOAP Template

    The SOAP Message functionality show in error at the time of SOAP Response Message.
    can u plz guide me ...
    SOAP Response Message
    <?xml version="1.0"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Server</faultcode>
    <faultstring>Component Interface API.</faultstring>
    <detail>
    <CIFault xmlns="http://xmlns.oracle.com/Enterprise/Tools/schemas/M116479.V1">
    <IBResponse type="Error">
    <DefaultTitle>Integration Broker Response</DefaultTitle>
    <StatusCode>20</StatusCode>
    <MessageSetID>91</MessageSetID>
    <MessageID>2</MessageID>
    <DefaultMessage>Cannot find Component Interface {CI_FPMSALSTEP_PNLResponse} (91,2)</DefaultMessage>
    <MessageParameters/>
    </IBResponse>
    <IBResponse type="Error">
    <DefaultTitle>Integration Broker Response</DefaultTitle>
    <StatusCode>20</StatusCode>
    <MessageSetID>90</MessageSetID>
    <MessageID>7</MessageID>
    <DefaultMessage>Initialization Failed (90,7)</DefaultMessage>
    <MessageParameters/>
    </IBResponse>
    <IBResponse type="Error">
    <DefaultTitle>Integration Broker Response</DefaultTitle>
    <StatusCode>20</StatusCode>
    <MessageSetID>90</MessageSetID>
    <MessageID>6</MessageID>
    <DefaultMessage>Not Authorized (90,6)</DefaultMessage>
    <MessageParameters/>
    </IBResponse>
    <IBResponse type="Error">
    <DefaultTitle>Integration Broker Response</DefaultTitle>
    <StatusCode>20</StatusCode>
    <MessageSetID>91</MessageSetID>
    <MessageID>20</MessageID>
    <DefaultMessage>Error initializing Component Interface {CI_FPMSALSTEP_PNLResponse}</DefaultMessage>
    <MessageParameters/>
    </IBResponse>
    </CIFault>
    </detail>
    </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

    Please provide how you call the webservice?
    Answer :- I am calling webservices through SOAP UI or Generate SOAP Templates.
    What tools/applciation do you use to call the webservice.
    PT 8.52/ HRMS 9.1
    How does your wsdl look like?
    http://184.73.174.36:9080/PSIGW/PeopleSoftServiceListeningConnector/CI_MI_PERSONAL_CI.1.wsdl
    =================================================================================================================
    SOAP Response message for CI_MI_PERSONAL_CI through Generate SOAP Templates for find operation.
    SOAP Response Message
    <?xml version="1.0"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Server</faultcode>
    <faultstring>null</faultstring>
    <detail>
    <IBResponse type="error" xmlns="">
    <DefaultTitle>Integration Broker Response</DefaultTitle>
    <StatusCode>20</StatusCode>
    <MessageID>45</MessageID>
    <DefaultMessage>
    <![CDATA*User password failed. (158,45)*]>
    </DefaultMessage>
    <MessageParameters>
    <Parameter>
    <![CDATA*ANONYMOUS*]>
    </Parameter>
    </MessageParameters>
    </IBResponse>
    </detail>
    </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    =================================================================================================================
    SOPA UI
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:m29="http://xmlns.oracle.com/Enterprise/Tools/schemas/M292846.V1">
    <soapenv:Header/>
    <soapenv:Body>
    <m29:Update__CompIntfc__CI_FPMSALSTEP_PNLResponse>
    <m29:notification>?</m29:notification>
    <m29:detail>?</m29:detail>
    </m29:Update__CompIntfc__CI_FPMSALSTEP_PNLResponse>
    </soapenv:Body>
    </soapenv:Envelope>
    ================================================================================================================
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Server</faultcode>
    <faultstring>Component Interface API.</faultstring>
    <detail>
    <CIFault xmlns="http://xmlns.oracle.com/Enterprise/Tools/schemas/M116479.V1">
    <IBResponse type="Error">
    <DefaultTitle>Integration Broker Response</DefaultTitle>
    <StatusCode>20</StatusCode>
    <MessageSetID>91</MessageSetID>
    <MessageID>2</MessageID>
    <DefaultMessage>Cannot find Component Interface {CI_FPMSALSTEP_PNLResponse} (91,2)</DefaultMessage>
    <MessageParameters/>
    </IBResponse>
    <IBResponse type="Error">
    <DefaultTitle>Integration Broker Response</DefaultTitle>
    <StatusCode>20</StatusCode>
    <MessageSetID>90</MessageSetID>
    <MessageID>7</MessageID>
    <DefaultMessage>Initialization Failed (90,7)</DefaultMessage>
    <MessageParameters/>
    </IBResponse>
    <IBResponse type="Error">
    <DefaultTitle>Integration Broker Response</DefaultTitle>
    <StatusCode>20</StatusCode>
    <MessageSetID>90</MessageSetID>
    <MessageID>6</MessageID>
    <DefaultMessage>Not Authorized (90,6)</DefaultMessage>
    <MessageParameters/>
    </IBResponse>
    <IBResponse type="Error">
    <DefaultTitle>Integration Broker Response</DefaultTitle>
    <StatusCode>20</StatusCode>
    <MessageSetID>91</MessageSetID>
    <MessageID>20</MessageID>
    <DefaultMessage>Error initializing Component Interface {CI_FPMSALSTEP_PNLResponse}</DefaultMessage>
    <MessageParameters/>
    </IBResponse>
    </CIFault>
    </detail>
    </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

  • Business Service SOAP Fault : OSB still using body to populate fault?

    I have a SOAP service specifically returning a SOAP fault. OSB doesn't recognize it as an fault and continues processing as if everything is OK. As per the documentation, in case of SOAP faults, OSB should generate a $fault variable based on the details present inside the SOAP fault, which in turn should give the control to the normal error handling stage and by pass the pipe line flow.
    Does anyone know how to get OSB to recognize a SOAP fault for what it is? Here's the response returned to OSB:
    <SOAP-ENV:Fault xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <faultactor/>
    <faultcode>SOAP-ENV:</faultcode>
    <faultstring>TEST ERROR 1</faultstring>
    <detail>
    <NS1:EOSGAPIError xsi:type="NS1:EOSGAPIError" xmlns:NS1="urn:eschelon.com/osg/1_0-OSGAPILib">
    <exceptionClassName xsi:type="xsd:string">Exception</exceptionClassName>
    <method xsi:type="xsd:string"/>
    </NS1:EOSGAPIError>
    </detail>
    </SOAP-ENV:Fault>
    Regards,
    Anuj

    Here are the contents of Invocation trace:
    (receiving request)
    Initial Message Context
    added $body
    <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <SendSmsMessage xmlns="http://datasquirt.com/webservices/">
    <customerIdentificationCard>
    <CustomerID>12121</CustomerID>
    <CustomerRef1>1212121</CustomerRef1>
    <CustomerRef2>ASDASDASD</CustomerRef2>
    <DisableCustomerCreation>true</DisableCustomerCreation>
    </customerIdentificationCard>
    <sender>1212</sender>
    <receiver>12121</receiver>
    <messageText>
    Have you finished the page specs yet? Greetings from NEO!
    </messageText>
    </SendSmsMessage>
    </soapenv:Body>
    added $header
    <soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/>
    added $inbound
    <con:endpoint name="ProxyService$Testing$Testing123" xmlns:con="http://www.bea.com/wli/sb/context">
    <con:service/>
    <con:transport>
    <con:mode>request-response</con:mode>
    <con:qualityOfService>best-effort</con:qualityOfService>
    <con:request xsi:type="loc:LocalRequestMetaData" xmlns:loc="http://www.bea.com/wli/sb/transports/local" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:headers xsi:type="loc:LocalRequestHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports"/>
    <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
    </con:request>
    <con:response xsi:type="loc:LocalResponseMetaData" xmlns:loc="http://www.bea.com/wli/sb/transports/local" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">0</tran:response-code>
    </con:response>
    </con:transport>
    <con:security>
    <con:transportClient>
    <con:username><anonymous></con:username>
    </con:transportClient>
    </con:security>
    </con:endpoint>
    added $messageID
    2118966794361651537--67bbd0aa.12b51c9a704.-7f90
    PipelinePairNode1
    stage1
    Message Context Changes
    changed $body
    <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <SendSmsMessage xmlns="http://datasquirt.com/webservices/">
    <customerIdentificationCard>
    <CustomerID>12121</CustomerID>
    <CustomerRef1>1212121</CustomerRef1>
    <CustomerRef2>ASDASDASD</CustomerRef2>
    <DisableCustomerCreation>true</DisableCustomerCreation>
    </customerIdentificationCard>
    <sender>1212</sender>
    <receiver>12121</receiver>
    <messageText>
    Have you finished the page specs yet? Greetings from NEO!
    </messageText>
    </SendSmsMessage>
    </soapenv:Body>
    changed $inbound
    <con:endpoint name="ProxyService$Testing$Testing123" xmlns:con="http://www.bea.com/wli/sb/context">
    <con:service/>
    <con:transport>
    <con:mode>request-response</con:mode>
    <con:qualityOfService>best-effort</con:qualityOfService>
    <con:request xsi:type="loc:LocalRequestMetaData" xmlns:loc="http://www.bea.com/wli/sb/transports/local" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:headers xsi:type="loc:LocalRequestHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports"/>
    <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
    </con:request>
    <con:response xsi:type="loc:LocalResponseMetaData" xmlns:loc="http://www.bea.com/wli/sb/transports/local" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">0</tran:response-code>
    </con:response>
    </con:transport>
    <con:security>
    <con:transportClient>
    <con:username><anonymous></con:username>
    </con:transportClient>
    </con:security>
    </con:endpoint>
    RouteNode1
    Routed Service
    Route to: "NotificationBsSendSMSNotificationHttp"
    $outbound:
    <con:endpoint name="BusinessService$NotificationOsbProject$BusinessServices$NotificationBsSendSMSNotificationHttp" xmlns:con="http://www.bea.com/wli/sb/context">
    <con:service>
    <con:operation>SendSmsMessageWithTemplate</con:operation>
    </con:service>
    <con:transport>
    <con:mode>request-response</con:mode>
    <con:qualityOfService>best-effort</con:qualityOfService>
    <con:request xsi:type="http:HttpRequestMetaData" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:headers xsi:type="http:HttpRequestHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports">
    <http:Content-Type>text/xml</http:Content-Type>
    <http:SOAPAction>
    "http://datasquirt.com/webservices/SendSmsMessageWithTemplate"
    </http:SOAPAction>
    </tran:headers>
    </con:request>
    </con:transport>
    <con:security>
    <con:doOutboundWss>false</con:doOutboundWss>
    </con:security>
    </con:endpoint>
    $body (request):
    <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <SendSmsMessage xmlns="http://datasquirt.com/webservices/">
    <customerIdentificationCard>
    <CustomerID>12121</CustomerID>
    <CustomerRef1>1212121</CustomerRef1>
    <CustomerRef2>ASDASDASD</CustomerRef2>
    <DisableCustomerCreation>true</DisableCustomerCreation>
    </customerIdentificationCard>
    <sender>1212</sender>
    <receiver>12121</receiver>
    <messageText>
    Have you finished the page specs yet? Greetings from NEO!
    </messageText>
    </SendSmsMessage>
    </soapenv:Body>
    $header (request):
    <soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/>
    $attachments (request):
    <con:attachments xmlns:con="http://www.bea.com/wli/sb/context"/>
    Message Context Changes
    added $outbound
    <con:endpoint name="BusinessService$NotificationOsbProject$BusinessServices$NotificationBsSendSMSNotificationHttp" xmlns:con="http://www.bea.com/wli/sb/context">
    <con:service>
    <con:operation>SendSmsMessageWithTemplate</con:operation>
    </con:service>
    <con:transport>
    <con:uri>
    http://tabcorpapi.datasquirt.com.au/V2/ContactService.asmx
    </con:uri>
    <con:mode>request-response</con:mode>
    <con:qualityOfService>best-effort</con:qualityOfService>
    <con:request xsi:type="http:HttpRequestMetaData" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:headers xsi:type="http:HttpRequestHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports">
    <http:Content-Type>text/xml; charset=utf-8</http:Content-Type>
    <http:SOAPAction>
    "http://datasquirt.com/webservices/SendSmsMessageWithTemplate"
    </http:SOAPAction>
    </tran:headers>
    <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
    </con:request>
    <con:response xsi:type="http:HttpResponseMetaData" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:headers xsi:type="http:HttpResponseHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports">
    <tran:user-header name="X-AspNet-Version" value="2.0.50727"/>
    <tran:user-header name="X-Powered-By" value="ASP.NET"/>
    <http:Cache-Control>private</http:Cache-Control>
    <http:Content-Length>1180</http:Content-Length>
    <http:Content-Type>text/xml; charset=utf-8</http:Content-Type>
    <http:Date>Mon, 27 Sep 2010 11:27:25 GMT</http:Date>
    <http:Server>Microsoft-IIS/7.0</http:Server>
    </tran:headers>
    <tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">0</tran:response-code>
    <tran:response-message xmlns:tran="http://www.bea.com/wli/sb/transports">OK</tran:response-message>
    <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
    <http:http-response-code>200</http:http-response-code>
    </con:response>
    </con:transport>
    <con:security>
    <con:doOutboundWss>false</con:doOutboundWss>
    </con:security>
    </con:endpoint>
    changed $body
    <SOAP-ENV:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0">
    <SOAP-ENV:Fault id="ref-1">
    <faultcode id="ref-2">SOAP-ENV:Authentication Issue</faultcode>
    <faultstring id="ref-3">
    Access Denied - Missing or incomplete Authentication Header
    </faultstring>
    <faultactor id="ref-4">
    http://tabcorpapi.datasquirt.com.au/V2/ContactService.asmx
    </faultactor>
    <detail xsi:type="a1:ServerFault" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Runtime.Serialization.Formatters">
    <exceptionType id="ref-5">ApiAuthenticationException</exceptionType>
    <message id="ref-6">
    Missing or incomplete Authentication Header
    </message>
    <stackTrace id="ref-7">
    at Datasquirt.Contact3.API.Security.AuthenticationModule.OnEnter(Object source, EventArgs eventArgs)
    </stackTrace>
    <exception xsi:null="1"/>
    </detail>
    </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
    changed $attachments
    <con:attachments xmlns:con="http://www.bea.com/wli/sb/context"/>
    changed $inbound
    <con:endpoint name="ProxyService$Testing$Testing123" xmlns:con="http://www.bea.com/wli/sb/context">
    <con:service/>
    <con:transport>
    <con:mode>request-response</con:mode>
    <con:qualityOfService>best-effort</con:qualityOfService>
    <con:request xsi:type="loc:LocalRequestMetaData" xmlns:loc="http://www.bea.com/wli/sb/transports/local" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:headers xsi:type="loc:LocalRequestHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports"/>
    <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
    </con:request>
    <con:response xsi:type="loc:LocalResponseMetaData" xmlns:loc="http://www.bea.com/wli/sb/transports/local" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">0</tran:response-code>
    </con:response>
    </con:transport>
    <con:security>
    <con:transportClient>
    <con:username><anonymous></con:username>
    </con:transportClient>
    </con:security>
    </con:endpoint>
    changed $header
    <soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/>
    PipelinePairNode1
    stage1
    Message Context Changes
    changed $body
    <SOAP-ENV:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0">
    <SOAP-ENV:Fault id="ref-1">
    <faultcode id="ref-2">SOAP-ENV:Authentication Issue</faultcode>
    <faultstring id="ref-3">
    Access Denied - Missing or incomplete Authentication Header
    </faultstring>
    <faultactor id="ref-4">
    http://tabcorpapi.datasquirt.com.au/V2/ContactService.asmx
    </faultactor>
    <detail xsi:type="a1:ServerFault" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Runtime.Serialization.Formatters">
    <exceptionType id="ref-5">ApiAuthenticationException</exceptionType>
    <message id="ref-6">
    Missing or incomplete Authentication Header
    </message>
    <stackTrace id="ref-7">
    at Datasquirt.Contact3.API.Security.AuthenticationModule.OnEnter(Object source, EventArgs eventArgs)
    </stackTrace>
    <exception xsi:null="1"/>
    </detail>
    </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
    changed $outbound
    <con:endpoint name="BusinessService$NotificationOsbProject$BusinessServices$NotificationBsSendSMSNotificationHttp" xmlns:con="http://www.bea.com/wli/sb/context">
    <con:service>
    <con:operation>SendSmsMessageWithTemplate</con:operation>
    </con:service>
    <con:transport>
    <con:uri>
    http://tabcorpapi.datasquirt.com.au/V2/ContactService.asmx
    </con:uri>
    <con:mode>request-response</con:mode>
    <con:qualityOfService>best-effort</con:qualityOfService>
    <con:request xsi:type="http:HttpRequestMetaData" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:headers xsi:type="http:HttpRequestHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports">
    <http:Content-Type>text/xml; charset=utf-8</http:Content-Type>
    <http:SOAPAction>
    "http://datasquirt.com/webservices/SendSmsMessageWithTemplate"
    </http:SOAPAction>
    </tran:headers>
    <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
    </con:request>
    <con:response xsi:type="http:HttpResponseMetaData" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:headers xsi:type="http:HttpResponseHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports">
    <tran:user-header name="X-AspNet-Version" value="2.0.50727"/>
    <tran:user-header name="X-Powered-By" value="ASP.NET"/>
    <http:Cache-Control>private</http:Cache-Control>
    <http:Content-Length>1180</http:Content-Length>
    <http:Content-Type>text/xml; charset=utf-8</http:Content-Type>
    <http:Date>Mon, 27 Sep 2010 11:27:25 GMT</http:Date>
    <http:Server>Microsoft-IIS/7.0</http:Server>
    </tran:headers>
    <tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">0</tran:response-code>
    <tran:response-message xmlns:tran="http://www.bea.com/wli/sb/transports">OK</tran:response-message>
    <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
    <http:http-response-code>200</http:http-response-code>
    </con:response>
    </con:transport>
    <con:security>
    <con:doOutboundWss>false</con:doOutboundWss>
    </con:security>
    </con:endpoint>
    changed $inbound
    <con:endpoint name="ProxyService$Testing$Testing123" xmlns:con="http://www.bea.com/wli/sb/context">
    <con:service/>
    <con:transport>
    <con:mode>request-response</con:mode>
    <con:qualityOfService>best-effort</con:qualityOfService>
    <con:request xsi:type="loc:LocalRequestMetaData" xmlns:loc="http://www.bea.com/wli/sb/transports/local" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:headers xsi:type="loc:LocalRequestHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports"/>
    <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
    </con:request>
    <con:response xsi:type="loc:LocalResponseMetaData" xmlns:loc="http://www.bea.com/wli/sb/transports/local" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">0</tran:response-code>
    </con:response>
    </con:transport>
    <con:security>
    <con:transportClient>
    <con:username><anonymous></con:username>
    </con:transportClient>
    </con:security>
    </con:endpoint>
    As per my understanding after Route to: "NotificationBsSendSMSNotificationHttp", the fault should be present in the $fault variable in place of $body,
    Regards,
    Anuj

  • How to raise a soap fault for "business errors"

    Hi folks,
    I have a scenario.
    sync
    SOAP<->PI<->RFC
    If the update to ECC failed then the RFC response will give back an Error Code in one of the fields, another field will indicate the error description,
    I will need to raise a soap fault with this error code and description in the soap fault.
    Note , there is only Req and response in the RFC, no fault in the RFC,
    Please advice me on this.
    Thanks,
    Hank

    Hi,
    I think this could be resolved using multi-mapping.
    (RFC)Response  - (SOAP) Response
                                -(SOAP) Fault
    In the response mapping, we have RFC response as the source structure , SOAP Response and SOAP Fault as the target structures.DO the validation for ErrorCode and Error Validation in the mapping. Soap Response structure would be generated for succesful RFC response. Soap Fault structure would be generated in case of RFC response containing error code and error message.
    Hope it works.
    Regards,
    Swetha.

Maybe you are looking for