Improper Faults in SOAP binding

Maybe someone has seen this and can help with a solution or workaround. We've got a BPEL process that needs to be exposed as a web service to a .NET client. The problem is that only one fault is included in the generated bindings node.
I've defined a BPEL process that throws three test faults. The WSDL has the following portType:
<portType name="TestFaults">
          <operation name="process">
               <input message="client:TestFaultsRequestMessage" />
               <output message="client:TestFaultsResponseMessage"/>
<fault name="faultOne" message="client:FaultOneMessage"/>
<fault name="faultTwo" message="client:FaultTwoMessage"/>
<fault name="faultThree" message="client:FaultThreeMessage"/>
          </operation>
     </portType>
However, when I deploy the process on 10.1.2.0.2 [build #2196 ] we don't get the proper bindings element. It looks like this:
<binding name="TestFaultsBinding" type="tns:TestFaults">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
     <operation name="process">
<soap:operation style="document" soapAction="process"/>
     <input>
<soap:body use="literal"/>
</input>
     <output>
<soap:body use="literal"/>
</output>
     <fault>
<soap:fault name="faultTwo" use="literal" encodingStyle=""/>
</fault>
</operation>
</binding>
The problem is that our .NET client isn't seeing all of the faults, and I assume it is because the different faults aren't included in the SOAP binding??
I've since deployed this same process on 10.1.3. Of course, the new version (which we can't use because we're on AIX) seems to create the binding properly:
<binding name="TestFaultsBinding" type="tns:TestFaults">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="process">
<soap:operation style="document" soapAction="process" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
<fault name="faultThree">
<soap:fault name="faultThree" use="literal" encodingStyle="" />
</fault>
<fault name="faultOne">
<soap:fault name="faultOne" use="literal" encodingStyle="" />
</fault>
<fault name="faultTwo">
<soap:fault name="faultTwo" use="literal" encodingStyle="" />
</fault>
</operation>
</binding>

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

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

  • Is soap binding Document type working in Flex Builder 4?

    Hi there,
    I've spent three days trying to make a simple web service call with <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> work.
    This works fine in FB3 since we're using tons of web service with document style...
    I know I'm using a beta so things are being solved in FB4 final version, but no one out there is saying that, passing an object as a parameter in a web service calls with document soap bindings just doesn't work!
    Flash Builder generated stubs will create an empty xml in the soap body! Passing strings and other primitive types seems to work, but in some circumstances you have  to pass objects to the backend!
    If someone is having this problem you simply have to change the backend soap binding style from "document" to "rpc" and all will work...
    Is there an official Adobe position about this?
    Regards,
    Giorgio Grillini
    P.S.: I'm using Flash Builder beta 2 with sdk 4 build 10485. Backend are Java web services deployed in jboss.

    Can you post sample code that shows this issue?
    BaBo,

  • Soap binding in wsdl and weblogic workshop

    Dear newsgroup,
    I'm trying to develop a webservice with workshop 8.1. In my case, I already have
    a "WSDL" file for the service I want to develop.
    So I created a "Schema Project", imported the wsdl file in it (workshop automatically
    compiled it !!) and generated a webservice from it. I then created a webservice
    project and moved the generated "jws" file in the webservice project.
    So far with no problem.
    Now I opened the "jws" file and saw there is this error:
    "ERROR: The binding for <Op name> does not declare one part"
    "SUGGESTION: A document literal binding must have at most one part. Make sure
    you have a WSDL that declares just one part for each message with a document literal
    binding."
    Indeed my wsdl has messages with more than one part. It looks like this:
    <wsdl:message name="SubmitSMSIn">
    <wsdl:part name="GNSHeaderHeader" element="fwk:GNSHeader">
    </wsdl:part>
    <wsdl:part name="GNSCredentialsHeader" element="fwk:GNSCredentials">
    </wsdl:part>
    <wsdl:part name="SubmitSMSRequestBody" element="sms:SubmitSMSRequest">
    </wsdl:part>
    </wsdl:message>
    And corresponding binding looks like this:
    <wsdl:binding name="smsBinding" type="smsPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"
    />
    <wsdl:operation name="SubmitSMS">
    <soap:operation style="document" soapAction="http://vodafone.net/ns/gns/sms/SubmitSMS">
    </soap:operation>
    <wsdl:input name="SubmitSMSInput">
    <soap:body use="literal" parts="SubmitSMSRequestBody">
    </soap:body>
    <soap:header use="literal" message="SubmitSMSIn" part="GNSHeaderHeader"
    wsdl:required="true">
    </soap:header>
    <soap:header use="literal" message="SubmitSMSIn" part="GNSCredentialsHeader"
    wsdl:required="true">
    </soap:header>
    </wsdl:input>
    <wsdl:output name="SubmitSMSOutput">
    <soap:body use="literal" parts="SubmitSMSResponseBody">
    </soap:body>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    MY QUESTION: Is this a workshop webservice limitation? I thought after reading
    wsdl specification,(URL: http://www.w3.org/TR/wsdl.html#_soap-b, example 3), that
    this should be possible.
    What am I doing wrong.
    Thanks for any help.
    -- Asit Bhattacharya

    Hi Asit,
    Personally, I find dealing with the WSDL/SOAP language a humbling
    experience and welcome the day that their syntax is completely buried
    with the use of tools; to that end, I would recommend that you use the
    WS-I test tools to validate/confirm all of the Rxxx issues.
    Regards,
    Bruce
    Asit Bhattacharya wrote:
    >
    Hi Bruce,
    Yes, you are right. "R2210" indeed does say that. Interestingly, it starts like
    this:
    "If a document-literal binding in a DESCRIPTION does not specify the parts attribute
    on a soapbind:body element, the corresponding abstract wsdl:message MUST define
    zero or one wsdl:parts."
    Please NOTE the "if" part of the recommendation. As I understand, it is saying
    when "parts" attribute is not specified in "soapbind:body" element then corresponding
    "wsdl:message" is required to define zero or one "wsdl:parts".
    In my original wsdl file example, I do have "parts" attribute specified for the
    "soapbind:body" element. To me that that should be valid. What do you say.
    Sincerely,
    Asit Bhattacharya.
    Bruce Stephens <[email protected]> wrote:
    Hi Asit,
    R2210 says: ...wsdl:message MUST define zero or one wsdl:parts.
    I might suggest that you try your WSDL with the WS-I test tools. They
    have a mode to consume and analyze WSDL that will give you a detailed
    response correlated with the basic profile.
    Regards,
    Bruce
    Asit Bhattacharya wrote:
    Hi Bruce,
    Thanks for your reply,
    WS-I Basic Profile "R2201" says the following:
    "A document-literal binding in a DESCRIPTION MUST, in each of its soapbind:body
    element(s), have at most one part listed in the parts attribute, ifthe parts
    attribute is specified."
    It does not restrict a meesage (that is used in doc/lit soap binding)to have
    multiple parts. If you look in my example wsdl (specially the soap:bindingportion),
    you'll see I'm only using one part for soap:body binding.
    Could you please explain why do you think that the SUGGESTION is valid?
    Thanks for your help.
    Regards.
    Asit Bhattacharya.
    Bruce Stephens <[email protected]> wrote:
    Hello,
    The suggestion is valid. You might want to reference the extensive
    work
    on this issue by the WS-I folks [1], see R2201 and following.
    Regards,
    Bruce
    [1]
    http://www.ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.html
    Asit Bhattacharya wrote:
    Dear newsgroup,
    I'm trying to develop a webservice with workshop 8.1. In my case,
    I
    already have
    a "WSDL" file for the service I want to develop.
    So I created a "Schema Project", imported the wsdl file in it (workshopautomatically
    compiled it !!) and generated a webservice from it. I then createda webservice
    project and moved the generated "jws" file in the webservice project.
    So far with no problem.
    Now I opened the "jws" file and saw there is this error:
    "ERROR: The binding for <Op name> does not declare one part"
    "SUGGESTION: A document literal binding must have at most one part.Make sure
    you have a WSDL that declares just one part for each message with
    a
    document literal
    binding."
    Indeed my wsdl has messages with more than one part. It looks likethis:
    <wsdl:message name="SubmitSMSIn">
    <wsdl:part name="GNSHeaderHeader" element="fwk:GNSHeader">
    </wsdl:part>
    <wsdl:part name="GNSCredentialsHeader" element="fwk:GNSCredentials">
    </wsdl:part>
    <wsdl:part name="SubmitSMSRequestBody" element="sms:SubmitSMSRequest">
    </wsdl:part>
    </wsdl:message>
    And corresponding binding looks like this:
    <wsdl:binding name="smsBinding" type="smsPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"
    />
    <wsdl:operation name="SubmitSMS">
    <soap:operation style="document" soapAction="http://vodafone.net/ns/gns/sms/SubmitSMS">
    </soap:operation>
    <wsdl:input name="SubmitSMSInput">
    <soap:body use="literal" parts="SubmitSMSRequestBody">
    </soap:body>
    <soap:header use="literal" message="SubmitSMSIn"part="GNSHeaderHeader"
    wsdl:required="true">
    </soap:header>
    <soap:header use="literal" message="SubmitSMSIn"part="GNSCredentialsHeader"
    wsdl:required="true">
    </soap:header>
    </wsdl:input>
    <wsdl:output name="SubmitSMSOutput">
    <soap:body use="literal" parts="SubmitSMSResponseBody">
    </soap:body>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    MY QUESTION: Is this a workshop webservice limitation? I thought
    after
    reading
    wsdl specification,(URL: http://www.w3.org/TR/wsdl.html#_soap-b,
    example
    3), that
    this should be possible.
    What am I doing wrong.
    Thanks for any help.
    -- Asit Bhattacharya

  • SOAP Binding Issue

    Hi All,
    My Requirement was to publish a RFC as a webserice in PI7.1.
    I did the entire configuration and publish display the sender agreement as webservice and took the WSDL from there.
    when I test this using SOAP UI tool then this WSDL works fine where the URL is standard
    http://host:port/XISOAPAdapter/MessageServlet?channel=:CommunicationComponent:ComminicationChannel
    But when I an tring to Use this wsdl in EP I am getting following error.
    Cannot Chosse this operation:There is no associated SOAP Binding.
    Am I doing Something wrong??
    Please help.
    Regards,

    Hi Suraj,
    Sorry for late Response.
    Please find the below
    - <wsdl:portType name="Z_QMNC_SAVE_CORRECTIONS.PortType">
    - <wsdl:operation name="Z_QMNC_SAVE_CORRECTIONS">
      <wsdl:input message="rfc:Z_QMNC_SAVE_CORRECTIONS.Input" xmlns:rfc="urn:sap-com:document:sap:rfc:functions" />
      <wsdl:output message="rfc:Z_QMNC_SAVE_CORRECTIONS.Output" xmlns:rfc="urn:sap-com:document:sap:rfc:functions" />
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:binding name="Z_QMNC_SAVE_CORRECTIONS.PortTypeBinding" type="rfc:Z_QMNC_SAVE_CORRECTIONS.PortType" xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
    - <wsdl:operation name="Z_QMNC_SAVE_CORRECTIONS">
      <soap:operation soapAction="http://sap.com/xi/WebService/soap1.1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
    - <wsdl:input>
      <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
      </wsdl:input>
    - <wsdl:output>
      <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>

  • SOAP binding over MQ transport support

    Hi All,
    I would like to know if the OSB and SOA Suite 11g products support SOAP binding over MQ transport. If yes, how should we do it?
    Regards,
    Aditya

    Hello Vlad Dyuzhev
    I see that there are two native MQ transports for each of OSB and SOA 11g products
    1) MQ transport (for OSB only)
    2) Oracle JCA adapter for MQ Series (for SOA only?)
    Both of them doesn't support SOAP messages, is my understanding correct?
    Now we have another way with foreign JMS providers which are mapped to remote MQ setup, these can be used to send over the SOAP messages from both OSB and SOA using JMS transport. Is my understanding correct?
    Please let me know.

  • WSDL with SOAP Binding and Attachement

    Hello
    I'm trying to define a WSDL-Definition which defines a operation called getFile() which returns a file as a SOAP attachement. I created the follwing file which I can verify without any problems. However if I try to compile it with wscompile (wscompile -gen:server -mapping build/mapping.xml -d build -nd build -classpath . config.xml) I get the follwing error:
    error: output message of binding operation "getFile" does not have a SOAP body extension
    When I remove the line
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
    wscompile generates the classes but gives the following warnings:
    warning: ignoring port "FileDistributorIFPort": not a SOAP port
    warning: Service "FileDistributorService" does not contain any usable ports
    Which is somehow clear because I did not define the soap binding.
    Any ideas what I can do so I can transmit a file via SOAP using attachements?
    Here's the file
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="FileDistributorService"
    targetNamespace="urn:Foo"
    xmlns:tns="urn:Foo"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
    <types>
    <xsd:schema targetNamespace="urn:Foo"
    xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
    <xsd:element name="getFile">
    <xsd:complexType>
    <xsd:all>
    <xsd:element name="mySymbol" type="xsd:string"/>
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="getFileResponse">
    <xsd:complexType>
    <xsd:all>
    <xsd:element name="result" type="float"/>
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    <xsd:complexType name="ArrayOfBinary">
    <xsd:complexContent>
    <xsd:restriction base="soapenc:Array">
    <xsd:attribute ref="soapenc:arrayType"
    wsdl:arrayType="xsd:binary[]"/>
    </xsd:restriction>
    </xsd:complexContent>
    </xsd:complexType>
    </xsd:schema>
    </types>
    <message name="m1">
    <part name="body" element="tns:getFile"/>
    </message>
    <message name="m2">
    <part name="body" element="tns:getFileResponse"/>
    <part name="file" type="tns:ArrayOfBinary"/>
    </message>
    <portType name="pt1">
    <operation name="getFile">
    <input message="tns:m1"/>
    <output message="tns:m2"/>
    </operation>
    </portType>
    <binding name="b1" type="tns:pt1">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
    <operation name="getFile">
    <soap:operation soapAction="getFile"/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>
    <mime:multipartRelated>
    <mime:part>
    <soap:body parts="body" use="literal"/>
    </mime:part>
    <mime:part>
    <mime:content part="file" type="tns:ArrayOfBinary"/>
    </mime:part>
    </mime:multipartRelated>
    </output>
    </operation>
    </binding>
    <service name="FileDistributorService">
    <port name="FileDistributorIFPort" binding="tns:b1">
    <soap:address location="http://localhost:8080/fxm/FileDistributorImpl"/>
    </port>
    </service>
    </definitions>
    Thanks a lot!
    Oliver

    Not very sure, but i suspect that there is an error here in your WSDL :
    <mime:multipartRelated>
    <mime:part>
    <soap:body parts="body" use="literal"/>
    </mime:part>
    <mime:part>
    <mime:content part="file" type="tns:ArrayOfBinary"/>The type attribute should be a valid Mime Type.
    Quoting from the WSDL Specification
    The type attribute contains the MIME type string. A type value has two portions, separated by a slash (/), either of which may be a wildcard (*). Not specifying the type attribute indicates that all MIME types are acceptable.
    Why not try the following instead of the last line above
    <mime:content part="file" type="*/*"/>

  • How to call a webservice with SOAP Binding Style RPC

    Hi Guys,
    I'm pretty new to the LiveCycle ES product and I'm trying to call a web service that is of SOAP binding style 'RPC'. After some research I found out that Adobe LC ES only support WSDL files of doc/literal type.
    My question is, is there a workaround for calling RPC style web services? can RPC style web services be converted into doc/literal type?
    Any information regarding this would be greatly appreciated.
    Kazz.

    Hello,
    I had the same problem and I've regenerated my WSDL ( Apache Axis ) with docu/litteral parameters.
    I think it's the only way...
    thomas

  • Dynamic Invocation: Error The SOAP PA receives a SOAP Fault from SOAP serve

    Hi All,
    I am trying to run the sample code "Dynamic Invocation of Oracle9i Web Services using Oracle UDDI registry"
    I was able to run the web services, publish them, and inquiry them using local UDDI registry.
    However, while invoking any method provided by the web services using the inovk method I get the following error
    oracle.j2ee.ws.client.WebServiceProxyException: Invocation failed 5,100: The SOAP PA receives a SOAP Fault from SOAP server
    Can anybody help me please?
    Regards,
    S.Al Shamsi

    It looks like the problem is occuring on the server side. I guess you have included the stacktrace from the client, can you get hold of the server side stacktrace?

  • Error if I add 2 WebServices in a Process - WSDL does not SOAP binding

    We have designed a simple process flow (exposed as a webservice) that consists of 2 separate services.
    Something like this:
    entry->service1->service2->exit
    We get the following error 'WSDL does not have SOAP binding'
    Annotation: Caught Compilation Error(s).
    Please fix before proceeding.
    com.stc.codegen.framework.model.CodeGenException
            at com.stc.wsclient.design.codegen.impl.JaxRpcCodelet.generateFiles(JaxRpcCodelet.java:409)
            at com.stc.wsclient.design.codegen.impl.WSClientCodelet.generateFiles(WSClientCodelet.java:435)
            at com.stc.codegen.frameworkImpl.model.CodeGenFrameworkImpl.processCodelets(CodeGenFrameworkImpl.java:602)
            at com.stc.codegen.frameworkImpl.model.CodeGenFrameworkImpl.process(CodeGenFrameworkImpl.java:1263)
            at com.stc.codegen.frameworkImpl.model.DeploymentVisitorImpl.process(DeploymentVisitorImpl.java:395)
            at com.stc.codegen.frameworkImpl.model.DeploymentVisitorImpl.process(DeploymentVisitorImpl.java:307)
            at com.stc.codegen.frameworkImpl.model.DeploymentVisitorImpl.traverseDeployment(DeploymentVisitorImpl.java:267)
            at com.stc.codegen.driver.module.DeploymentBuildAction.loadCodeGen(DeploymentBuildAction.java:901)
            at com.stc.codegen.driver.module.DeploymentBuildAction.access$700(DeploymentBuildAction.java:173)
            at com.stc.codegen.driver.module.DeploymentBuildAction$1.run(DeploymentBuildAction.java:590)
            at org.openide.util.Task.run(Task.java:136)
            at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:599)
    Caused by: com.stc.codegen.framework.model.CodeGenException
            at com.stc.wsclient.design.codegen.impl.JaxRpcCodelet.generateBeans(JaxRpcCodelet.java:483)
            at com.stc.wsclient.design.codegen.impl.JaxRpcCodelet.generateFiles(JaxRpcCodelet.java:407)
            ... 11 more
    Caused by: com.stc.codegen.framework.model.CodeGenException:  WSDL does not have SOAP Binding
            at com.stc.wsclient.design.codegen.impl.JaxRpcCodelet.showWarningSOAPBinding(JaxRpcCodelet.java:761)
            at com.stc.wsclient.design.codegen.impl.JaxRpcCodelet.generateBeans(JaxRpcCodelet.java:464)
    .. ... 12 moreAny idea's?
    regards,
    Vinod

    Hi Vinod,
    the two web services being called are two different web services (two WSLDs) or one web service but two different operations (one WSDL)?
    In latter case you have to define new partner in your process and assign it to one of the web services calls. Then you will have one more partner also in connectivity map and you have to connect it to new web service application and map it in deployment profile.
    Regards,
    Juraj

  • HTTP Binding & SOAP Binding

    I have a client where I need to post xml message to an aspx site. The XML need to be in a SOAP envelope. When using http binding to do a http post the message is not in a soap envelope. Is there a simple way of using http binding that will post the message in a soap envelope? I used obtunnel to capture the message of a http binding vs a soap binding.
    HTTP Binding:
    POST /httpreceive.aspx/httpreceive.aspx HTTP/1.1
    Host: devsoa.test.com:1234
    Connection: Keep-Alive, TE
    TE: trailers, deflate, gzip, compress
    User-Agent: Oracle HTTPClient Version 10h
    Accept-Encoding: gzip, x-gzip, compress, x-compress
    Content-type: text/xml
    Content-length: 336
    <?xml version="1.0" encoding="UTF-8"?>
    <AddressBookEntry xmlns="http://xmlns.oracle.com/TestService">
    <AddressBookNumber>43</AddressBookNumber>
    <Name>test user</Name>
    <AddressLine1/>
    <AddressLine2/>
    <City/>
    <State/>
    <PostalCode/>
    <Phone/>
    <Fax/>
    <Email/>
    <ElectDest/>
    </AddressBookEntry>
    SOAP Binding:
    POST /httpreceive.aspx HTTP/1.1
    Host: devsoa.test.com:1234
    Connection: Keep-Alive, TE
    TE: trailers, deflate, gzip, compress
    User-Agent: Oracle HTTPClient Version 10h
    SOAPAction: "process"
    Accept-Encoding: gzip, x-gzip, compress, x-compress
    Content-type: text/xml; charset=UTF-8
    Content-length: 734
    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <env:Header>
    <MsgSoapHeader xmlns="http://xmlns.oracle.com/TestService">
         <Authentication>
              <UserName>testUser</UserName>
              <Password>testPwd</Password>
         </Authentication>
         <Properties>
              <Company>TEST</Company>
         </Properties>
    </MsgSoapHeader>
    </env:Header>
    <env:Body>
         <AddressBookEntry xmlns="http://xmlns.oracle.com/TestService">
              <AddressBookNumber>12345</AddressBookNumber>
              <Name>test user</Name>
              <AddressLine1/>
              <AddressLine2/>
              <City/>
              <State/>
              <PostalCode/>
              <Phone/>
              <Fax/>
              <Email/>
              <ElectDest/>
         </AddressBookEntry>
    </env:Body>
    </env:Envelope>
    Edited by: sns724 on Mar 16, 2009 1:32 PM
    Edited by: sns724 on Mar 16, 2009 4:07 PM
    Edited by: sns724 on Mar 16, 2009 4:07 PM

    No, this is just a .net asp site (httpreceive.aspx) that take http post. I have to use http binding to do an http post since there is no web service. Therefore there is no wsdl to import for the partner link. However, they expect the xml to be in a soap envelope with a custom soap header for authentication. I'm able to get the soap envelope using soap binding but not http binding. What I need is to be able to do a http post with the message in a soap envelope. Any help will be greatly appreciated.

  • Fault Message SOAP

    Hello.
    My design is next.
    IN SAP XI/PI
    Interface Object
    1.- Create Fault Message Types. (MT_FAULT)
    2.- Message Interfaces / add Fault Message Types (MT_FAULT) (Add Proxy and SOAP interfaces)
    Mapping Object
    3.- Message Mapping / Add Mapping (MT_FAULT mapping MT_FAULT) -> (MM_FAULT = mapping generate)
    4.- Interfaces Mapping / Method Request,Response and Fault.
    In Method Fault add (MM_FAULT).
    IN SPROXY SAP ECC
    5.- Execute transacction Sproxy and regenerate namespaces of interface.
    6.- Debug interface and NOT MESSAGE ERROR.
    But entry transaction SXI_MONITOR, in SAP ECC the XML is next.
    (SOAP HEADER - 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: Server was unable to read request. ---> There is an error in XML document (1, 526). ---> Instance validation error: 'CL' is not a valid value for SolicitudOrdenPagoMonedaOperacion.</SAP:AdditionalText>
    <SAP:ApplicationFaultMessage namespace="" />
    <SAP:Stack />
    <SAP:Retry>M</SAP:Retry>
    </SAP:Error>
    bold The error "AdditionalText" want add in table Z.

    Hello.
    It happens that I have created all this and do not know how to obtain the values of error.
    The only mistake I have used SXI_MONITOR.
    But I need to take the error message and send to a table Z. The idea is that in the Proxy My SAP ECC returns an exception with the error.
    So far not done.

  • SOAP Fault Exception [Actor null]

    Hi All,
    Im trying to call a webservice from portal This web service is in ECC. When I try to call it, it throws the following error:
    #1.5 #00E0ED0BA5EF005C000000C500001E350004532D85C22E36#1217354889571#com.sap.portal.SOAPLogger#sap.com/irj#com.sap.portal.SOAPLogger#TESTUSER#9868##n/a##4b8f60d05d9911dda9db00e0ed0ba5ef#SAPEngine_Application_Thread[impl:3]_4##0#0#Warning#1#/System/Server#Java###Call failed
    [EXCEPTION]
    {0}#1#SOAP Fault Exception [Actor null] : CX_ST_MATCH_ELEMENT:XSLT exception.System expected element 'ItItem'
    <Host>undefined</Host>
    <Component>APPL</Component>
    <ChainedException>
      <Exception_Name>CX_SOAP_CORE</Exception_Name>
      <Exception_Text>CX_ST_MATCH_ELEMENT:XSLT exception.System expected element &apos;ItItem&apos;</Exception_Text>
    </ChainedException>
    <ChainedException>
      <Exception_Name>CX_SXMLP</Exception_Name>
      <Exception_Text>XSLT exception</Exception_Text>
    </ChainedException>
    <ChainedException>
      <Exception_Name>CX_ST_MATCH_ELEMENT</Exception_Name>
      <Exception_Text>System expected element &apos;ItItem&apos;: Main Program:/1BCDWB/WSSC9FCD3336732797F332| Program:/1BCDWB/WSSC9FCD3336732797F332| Line: 11| Valid:X</Exception_Text>
    </ChainedException>
    #1.5 #00E0ED0BA5EF005C000000C700001E350004532D85C23109#1217354889572#System.err#sap.com/irj#System.err#BHARDWS#9868##n/a##4b8f60d05d9911dda9db00e0ed0ba5ef#SAPEngine_Application_Thread[impl:3]_4##0#0#Error##Plain###SOAP Fault Exception [Actor null] : CX_ST_MATCH_ELEMENT:XSLT exception.System expected element 'ItItem'
    <Host>undefined</Host>
    <Component>APPL</Component>
    <ChainedException>
      <Exception_Name>CX_SOAP_CORE</Exception_Name>
      <Exception_Text>CX_ST_MATCH_ELEMENT:XSLT exception.System expected element &apos;ItItem&apos;</Exception_Text>
    </ChainedException>
    <ChainedException>
      <Exception_Name>CX_SXMLP</Exception_Name>
      <Exception_Text>XSLT exception</Exception_Text>
    </ChainedException>
    <ChainedException>
      <Exception_Name>CX_ST_MATCH_ELEMENT</Exception_Name>
      <Exception_Text>System expected element &apos;ItItem&apos;: Main Program:/1BCDWB/WSSC9FCD3336732797F332| Program:/1BCDWB/WSSC9FCD3336732797F332| Line: 11| Valid:X</Exception_Text>
    </ChainedException>
    #1.5 #00E0ED0BA5EF005C000000C800001E350004532D85C231DF#1217354889572#System.err#sap.com/irj#System.err#BHARDWS#9868##n/a##4b8f60d05d9911dda9db00e0ed0ba5ef#SAPEngine_Application_Thread[impl:3]_4##0#0#Error##Plain###We are in Exception and got the message778: SOAP Fault Error (n.a) : CX_ST_MATCH_ELEMENT:XSLT exception.System expected element 'ItItem'#
    Has anyone come across this? Please help by giving directions on how to fix this.
    Thanks
    SB

    Hi Alex,
    Please ignore the above bapi call, it is too complex since it is a custom BAPI that Im trying to call. For now, I am trying to call a very simple BAPI --> BAPI_CUSTOMER_GETDETAIL just to make sure that communication is happening.
    Here is the WSDL:
      <?xml version="1.0" encoding="utf-8" ?>
    - <wsdl:definitions targetNamespace="urn:sap-com:document:sap:rfc:functions" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="urn:sap-com:document:sap:rfc:functions">
    - <wsdl:documentation>
      <sidl:sidl xmlns:sidl="http://www.sap.com/2007/03/sidl" />
      </wsdl:documentation>
    - <wsdl:types>
    - <xsd:schema attributeFormDefault="qualified" targetNamespace="urn:sap-com:document:sap:rfc:functions">
    - <xsd:simpleType name="char1">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="1" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char10">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="10" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char130">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="130" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char16">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="16" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char2">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="2" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char20">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="20" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char220">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="220" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char3">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="3" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char30">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="30" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char31">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="31" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char32">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="32" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char35">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="35" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char4">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="4" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char5">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="5" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char50">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="50" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="cuky5">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="5" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="date">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="10" />
      <xsd:pattern value="\d\d\d\d-\d\d-\d\d" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="lang">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="1" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="numeric3">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="3" />
      <xsd:pattern value="\d*" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="numeric6">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="6" />
      <xsd:pattern value="\d*" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:complexType name="BAPIRET2">
    - <xsd:sequence>
      <xsd:element name="TYPE" type="tns:char1" />
      <xsd:element name="ID" type="tns:char20" />
      <xsd:element name="NUMBER" type="tns:numeric3" />
      <xsd:element name="MESSAGE" type="tns:char220" />
      <xsd:element name="LOG_NO" type="tns:char20" />
      <xsd:element name="LOG_MSG_NO" type="tns:numeric6" />
      <xsd:element name="MESSAGE_V1" type="tns:char50" />
      <xsd:element name="MESSAGE_V2" type="tns:char50" />
      <xsd:element name="MESSAGE_V3" type="tns:char50" />
      <xsd:element name="MESSAGE_V4" type="tns:char50" />
      <xsd:element name="PARAMETER" type="tns:char32" />
      <xsd:element name="ROW" type="xsd:int" />
      <xsd:element name="FIELD" type="tns:char30" />
      <xsd:element name="SYSTEM" type="tns:char10" />
      </xsd:sequence>
      </xsd:complexType>
    - <xsd:complexType name="BAPIKNA101">
    - <xsd:sequence>
      <xsd:element name="FORM_OF_AD" type="tns:char30" />
      <xsd:element name="FIRST_NAME" type="tns:char35" />
      <xsd:element name="NAME" type="tns:char35" />
      <xsd:element name="NAME_3" type="tns:char35" />
      <xsd:element name="NAME_4" type="tns:char35" />
      <xsd:element name="DATE_BIRTH" type="tns:date" />
      <xsd:element name="STREET" type="tns:char35" />
      <xsd:element name="POSTL_CODE" type="tns:char10" />
      <xsd:element name="CITY" type="tns:char35" />
      <xsd:element name="REGION" type="tns:char3" />
      <xsd:element name="COUNTRY" type="tns:char3" />
      <xsd:element name="COUNTRNISO" type="tns:char3" />
      <xsd:element name="COUNTRAISO" type="tns:char3" />
      <xsd:element name="INTERNET" type="tns:char130" />
      <xsd:element name="FAX_NUMBER" type="tns:char31" />
      <xsd:element name="TELEPHONE" type="tns:char16" />
      <xsd:element name="TELEPHONE2" type="tns:char16" />
      <xsd:element name="LANGU" type="tns:lang" />
      <xsd:element name="LANGU_ISO" type="tns:char2" />
      <xsd:element name="CURRENCY" type="tns:cuky5" />
      <xsd:element name="CURRENCY_ISO" type="tns:char3" />
      <xsd:element name="COUNTRYISO" type="tns:char2" />
      <xsd:element name="ONLY_CHANGE_COMADDRESS" type="tns:char1" />
      </xsd:sequence>
      </xsd:complexType>
    - <xsd:complexType name="BAPIRETURN">
    - <xsd:sequence>
      <xsd:element name="TYPE" type="tns:char1" />
      <xsd:element name="CODE" type="tns:char5" />
      <xsd:element name="MESSAGE" type="tns:char220" />
      <xsd:element name="LOG_NO" type="tns:char20" />
      <xsd:element name="LOG_MSG_NO" type="tns:numeric6" />
      <xsd:element name="MESSAGE_V1" type="tns:char50" />
      <xsd:element name="MESSAGE_V2" type="tns:char50" />
      <xsd:element name="MESSAGE_V3" type="tns:char50" />
      <xsd:element name="MESSAGE_V4" type="tns:char50" />
      </xsd:sequence>
      </xsd:complexType>
    - <xsd:element name="BAPI_TRANSACTION_COMMIT">
    - <xsd:complexType>
    - <xsd:sequence>
      <xsd:element name="WAIT" type="tns:char1" minOccurs="0" />
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
    - <xsd:element name="BAPI_TRANSACTION_COMMITResponse">
    - <xsd:complexType>
    - <xsd:sequence>
      <xsd:element name="RETURN" type="tns:BAPIRET2" />
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
    - <xsd:element name="BAPI_CUSTOMER_GETDETAIL">
    - <xsd:complexType>
    - <xsd:sequence>
      <xsd:element name="CUSTOMERNO" type="tns:char10" />
      <xsd:element name="PI_DISTR_CHAN" type="tns:char2" minOccurs="0" />
      <xsd:element name="PI_DIVISION" type="tns:char2" minOccurs="0" />
      <xsd:element name="PI_PASS_BUFFER" type="tns:char1" minOccurs="0" />
      <xsd:element name="PI_SALESORG" type="tns:char4" />
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
    - <xsd:element name="BAPI_CUSTOMER_GETDETAILResponse">
    - <xsd:complexType>
    - <xsd:sequence>
      <xsd:element name="PE_ADDRESS" type="tns:BAPIKNA101" />
      <xsd:element name="RETURN" type="tns:BAPIRETURN" />
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      </xsd:schema>
      </wsdl:types>
    - <wsdl:message name="BAPI_TRANSACTION_COMMIT">
      <wsdl:part name="parameters" element="tns:BAPI_TRANSACTION_COMMIT" />
      </wsdl:message>
    - <wsdl:message name="BAPI_TRANSACTION_COMMITResponse">
      <wsdl:part name="parameter" element="tns:BAPI_TRANSACTION_COMMITResponse" />
      </wsdl:message>
    - <wsdl:message name="BAPI_CUSTOMER_GETDETAIL">
      <wsdl:part name="parameters" element="tns:BAPI_CUSTOMER_GETDETAIL" />
      </wsdl:message>
    - <wsdl:message name="BAPI_CUSTOMER_GETDETAILResponse">
      <wsdl:part name="parameter" element="tns:BAPI_CUSTOMER_GETDETAILResponse" />
      </wsdl:message>
    - <wsdl:portType name="YCUST">
    - <wsdl:operation name="BAPI_TRANSACTION_COMMIT">
      <wsdl:input message="tns:BAPI_TRANSACTION_COMMIT" />
      <wsdl:output message="tns:BAPI_TRANSACTION_COMMITResponse" />
      </wsdl:operation>
    - <wsdl:operation name="BAPI_CUSTOMER_GETDETAIL">
      <wsdl:input message="tns:BAPI_CUSTOMER_GETDETAIL" />
      <wsdl:output message="tns:BAPI_CUSTOMER_GETDETAILResponse" />
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:binding name="YCUST" type="tns:YCUST">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    - <wsdl:operation name="BAPI_TRANSACTION_COMMIT">
      <soap:operation soapAction="" style="document" />
    - <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
    - <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
    - <wsdl:operation name="BAPI_CUSTOMER_GETDETAIL">
      <soap:operation soapAction="" style="document" />
    - <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
    - <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:service name="service">
    - <wsdl:port name="YCUST" binding="tns:YCUST">
      <soap:address location="http://myportal:8040/sap/bc/srt/rfc/sap/ycust/040/ycust/ycust" />
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>
    As you will see below in my portal component, Im populating the four fields that it requires:
    public class WS_ECC_Service extends PageProcessorComponent {
      public DynPage getPage(){
        return new WS_ECC_ServiceDynPage();
      public static class WS_ECC_ServiceDynPage extends JSPDynPage{
         protected IPortalComponentRequest request;
               protected IPortalComponentResponse response;
               protected IPortalComponentSession session;
               protected IPortalComponentContext context;
               protected IPortalComponentProfile profile;
               protected String userId;
         //      protected IUser epUser;
               protected String sapSystem;
               protected String fileName;
               private DAO DAO = null;
         //      private FileUploadUtility FIU = null;
         //      private ReadExcelData RED = null;
               private final static int SUCCESS_STATE = 0;   
               private final static int INITIAL_STATE = 1;
               private final static int ERROR_STATE = 2; 
               private int state = INITIAL_STATE;
        public void doInitialization(){
          this.communicate();
          // fill your bean with data here...
         public void communicate()throws IllegalArgumentException{     
                                  try{                  
                                          IPortalRuntimeResources runtimeResources = PortalRuntime.getRuntimeResources();
                                       IYBAPI_Service myService = (IYBAPI_Service)runtimeResources.getService(IYBAPI_Service.KEY);
                                                         System.err.println("b4 passing object to service Anurag-"+IYBAPI_Service.KEY);
                                       com.ybapi.BAPI_CUSTOMER_GETDETAIL param = new com.ybapi.BAPI_CUSTOMER_GETDETAIL();
                                       com.ybapi.BAPI_CUSTOMER_GETDETAILResponse result1 = new com.ybapi.BAPI_CUSTOMER_GETDETAILResponse();
                                       com.ybapi.Char10 custno = new com.ybapi.Char10();
                                       custno.setValue("0000009702");                 
                                       param.setCUSTOMERNO(custno);
                                       com.ybapi.Char2 distr = new com.ybapi.Char2();
                                       distr.setValue("12");                 
                                       param.setPI_DISTR_CHAN(distr);
                                       param.setPI_DIVISION(distr);
                                       com.ybapi.Char1 buff = new com.ybapi.Char1();
                                       buff.setValue("w");                 
                                       param.setPI_PASS_BUFFER(buff);
                                       com.ybapi.Char4 sorg = new com.ybapi.Char4();
                                       sorg.setValue("0001");                 
                                       param.setPI_SALESORG(sorg);
                                       result1 = myService.BAPI_CUSTOMER_GETDETAIL(param);
                                    System.err.println("message message dear message : - " + result1.getPE_ADDRESS().getNAME());
                                  }catch (IllegalArgumentException ex){
                                  System.err.println("Getting details2 " + ex.getMessage());
                                  }catch (Exception e) {
                                  e.printStackTrace();
                                  System.err.println("We are in Exception and got the message778: " + e.getMessage());
                                  }//end try catch
        public void doProcessAfterInput() throws PageException {
        public void doProcessBeforeOutput() throws PageException {
          this.setJspName("uploadutility.jsp");
    and this is what it is throwing the error, exactly the same that I got in my above post which I asked you to ignore.
    #1.5 #00E0ED0BA5EF006E0000015A00001E350004533EB66A08B6#1217428720322#com.sap.portal.SOAPLogger#sap.com/irj#com.sap.portal.SOAPLogger#BHARDWS#17255##n/a##2aaa48605e4511ddbbf300e0ed0ba5ef#SAPEngine_Application_Thread[impl:3]_2##0#0#Warning#1#/System/Server#Java###Call failed
    [EXCEPTION]
    {0}#1#SOAP Fault Exception [Actor null] : CX_ST_MATCH_ELEMENT:XSLT exception.System expected element 'CUSTOMERNO'
    <Host>undefined</Host>
    <Component>APPL</Component>
    <ChainedException>
      <Exception_Name>CX_SOAP_CORE</Exception_Name>
      <Exception_Text>CX_ST_MATCH_ELEMENT:XSLT exception.System expected element &apos;CUSTOMERNO&apos;</Exception_Text>
    </ChainedException>
    <ChainedException>
      <Exception_Name>CX_SXMLP</Exception_Name>
      <Exception_Text>XSLT exception</Exception_Text>
    </ChainedException>
    <ChainedException>
      <Exception_Name>CX_ST_MATCH_ELEMENT</Exception_Name>
      <Exception_Text>System expected element &apos;CUSTOMERNO&apos;: Main Program:/1BCDWB/WSSB675FB6DBC9770445BC| Program:/1BCDWB/WSSB675FB6DBC9770445BC| Line: 19| Valid:X</Exception_Text>
    </ChainedException>
    #1.5 #00E0ED0BA5EF006E0000015C00001E350004533EB66A09BD#1217428720322#System.err#sap.com/irj#System.err#BHARDWS#17255##n/a##2aaa48605e4511ddbbf300e0ed0ba5ef#SAPEngine_Application_Thread[impl:3]_2##0#0#Error##Plain###$$$$$$$$$$$$$exex-SOAP Fault Error (n.a) : CX_ST_MATCH_ELEMENT:XSLT exception.System expected element 'CUSTOMERNO'#
    #1.5 #00E0ED0BA5EF006E0000015D00001E350004533EB66A0B44#1217428720323#System.err#sap.com/irj#System.err#BHARDWS#17255##n/a##2aaa48605e4511ddbbf300e0ed0ba5ef#SAPEngine_Application_Thread[impl:3]_2##0#0#Error##Plain###SOAP Fault Exception [Actor null] : CX_ST_MATCH_ELEMENT:XSLT exception.System expected element 'CUSTOMERNO'
    <Host>undefined</Host>
    <Component>APPL</Component>
    <ChainedException>
      <Exception_Name>CX_SOAP_CORE</Exception_Name>
      <Exception_Text>CX_ST_MATCH_ELEMENT:XSLT exception.System expected element &apos;CUSTOMERNO&apos;</Exception_Text>
    </ChainedException>
    <ChainedException>
      <Exception_Name>CX_SXMLP</Exception_Name>
      <Exception_Text>XSLT exception</Exception_Text>
    </ChainedException>
    <ChainedException>
      <Exception_Name>CX_ST_MATCH_ELEMENT</Exception_Name>
      <Exception_Text>System expected element &apos;CUSTOMERNO&apos;: Main Program:/1BCDWB/WSSB675FB6DBC9770445BC| Program:/1BCDWB/WSSB675FB6DBC9770445BC| Line: 19| Valid:X</Exception_Text>
    </ChainedException>
    #1.5 #00E0ED0BA5EF006E0000015E00001E350004533EB66A0B93#1217428720323#System.err#sap.com/irj#System.err#TESTUSER#17255##n/a##2aaa48605e4511ddbbf300e0ed0ba5ef#SAPEngine_Application_Thread[impl:3]_2##0#0#Error##Plain###We are in Exception and got the message778: SOAP Fault Error (n.a) : CX_ST_MATCH_ELEMENT:XSLT exception.System expected element 'CUSTOMERNO'#

  • 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

  • Binding Fault

    Hi all,
    I am trying to execute my BPEL process.My BPEL process gets successfully compiled and deployed on BPEL engine,but I am trying to create an instance of this process,I am gettting binding error
    <bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="code"><code>GenericError</code></part><part name="summary"><summary>Failed get wsdl service definition.
    Failed to get a WSDL service that support the portType "{http://www.globus.org/namespaces/examples/core/MathService_instance}MathPortType" in WSDL definition "{http://www.globus.org/namespaces/examples/core/MathService_instance}MathService".
    Please verify that WSDL portType "{http://www.globus.org/namespaces/examples/core/MathService_instance}MathPortType" is supported by a service in WSDL file.
    </summary></part></bindingFault>
    My WSDL is running on a different machine,on a different container.The code of my WSDL service is as follows
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions name="MathService" targetNamespace="http://www.globus.org/namespaces/examples/core/MathService_instance" xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd" xmlns:tns="http://www.globus.org/namespaces/examples/core/MathService_instance" xmlns:wsrpw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" xmlns:wsdlpp="http://www.globus.org/namespaces/2004/10/WSDLPreprocessor" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:porttype="http://www.globus.org/namespaces/examples/core/MathService_instance" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" location="../../wsrf/properties/WS-ResourceProperties.wsdl"/>
    <wsdl:types>
    <xsd:schema targetNamespace="http://www.globus.org/namespaces/examples/core/MathService_instance" xmlns:tns="http://www.globus.org/namespaces/examples/core/MathService_instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/03/addressing" schemaLocation="../../ws/addressing/WS-Addressing.xsd"/>
         <!-- REQUESTS AND RESPONSES -->
         <xsd:element name="add" type="xsd:int"/>
         <xsd:element name="addResponse">
              <xsd:complexType/>
         </xsd:element>
         <xsd:element name="subtract" type="xsd:int"/>
         <xsd:element name="subtractResponse">
              <xsd:complexType/>
         </xsd:element>
         <xsd:element name="getValueRP">
              <xsd:complexType/>
         </xsd:element>
         <xsd:element name="getValueRPResponse" type="xsd:int"/>
         <!-- RESOURCE PROPERTIES -->
         <xsd:element name="Value" type="xsd:int"/>
         <xsd:element name="LastOp" type="xsd:string"/>
         <xsd:element name="MathResourceProperties">
         <xsd:complexType>
              <xsd:sequence>
                   <xsd:element maxOccurs="1" minOccurs="1" ref="tns:Value"/>
                   <xsd:element maxOccurs="1" minOccurs="1" ref="tns:LastOp"/>
              </xsd:sequence>
         </xsd:complexType>
         </xsd:element>
    </xsd:schema>
    </wsdl:types>
    <wsdl:message name="SubtractOutputMessage">
    <wsdl:part name="parameters" element="tns:subtractResponse"/>
    </wsdl:message>
    <wsdl:message name="GetValueRPInputMessage">
    <wsdl:part name="parameters" element="tns:getValueRP"/>
    </wsdl:message>
    <wsdl:message name="SubtractInputMessage">
    <wsdl:part name="parameters" element="tns:subtract"/>
    </wsdl:message>
    <wsdl:message name="AddInputMessage">
    <wsdl:part name="parameters" element="tns:add"/>
    </wsdl:message>
    <wsdl:message name="AddOutputMessage">
    <wsdl:part name="parameters" element="tns:addResponse"/>
    </wsdl:message>
    <wsdl:message name="GetValueRPOutputMessage">
    <wsdl:part name="parameters" element="tns:getValueRPResponse"/>
    </wsdl:message>
    <wsdl:portType name="MathPortType" wsrp:ResourceProperties="tns:MathResourceProperties">
    <wsdl:operation name="add">
    <wsdl:input message="tns:AddInputMessage"/>
    <wsdl:output message="tns:AddOutputMessage"/>
    </wsdl:operation>
    <wsdl:operation name="subtract">
    <wsdl:input message="tns:SubtractInputMessage"/>
    <wsdl:output message="tns:SubtractOutputMessage"/>
    </wsdl:operation>
    <wsdl:operation name="getValueRP">
    <wsdl:input message="tns:GetValueRPInputMessage"/>
    <wsdl:output message="tns:GetValueRPOutputMessage"/>
    </wsdl:operation>
    <wsdl:operation name="GetResourceProperty">
    <wsdl:input name="GetResourcePropertyRequest" message="wsrpw:GetResourcePropertyRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourceProperty"/>
    <wsdl:output name="GetResourcePropertyResponse" message="wsrpw:GetResourcePropertyResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourcePropertyResponse"/>
    <wsdl:fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault"/>
    <wsdl:fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault"/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="MathPortTypeSOAPBinding" type="porttype:MathPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="add">
    <soap:operation soapAction="http://www.globus.org/namespaces/examples/core/MathService_instance/MathPortType/addRequest"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="subtract">
    <soap:operation soapAction="http://www.globus.org/namespaces/examples/core/MathService_instance/MathPortType/subtractRequest"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getValueRP">
    <soap:operation soapAction="http://www.globus.org/namespaces/examples/core/MathService_instance/MathPortType/getValueRPRequest"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetResourceProperty">
    <soap:operation soapAction="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourceProperty"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    <wsdl:fault name="InvalidResourcePropertyQNameFault">
    <soap:fault name="InvalidResourcePropertyQNameFault" use="literal"/>
    </wsdl:fault>
    <wsdl:fault name="ResourceUnknownFault">
    <soap:fault name="ResourceUnknownFault" use="literal"/>
    </wsdl:fault>
    </wsdl:operation>
    </wsdl:binding>
    <plnk:partnerLinkType name="MathService">
    <plnk:role name="MathServiceProvider">
    <plnk:portType name="tns:MathPortType"/>
    </plnk:role>
    </plnk:partnerLinkType>
    </wsdl:definitions>
    Please suggest me any possible reasons of the error.
    Thanks
    Regards
    Prateek Jain
    DA-IICT
    Gandhinagar(Gujarat)
    India

    I am facing a similar problem. Please let me know if you have got a resolution for the error.
    Thanks

Maybe you are looking for

  • Ipod Video to TV does not work :(

    I just bought the iPod AV Connection Kit today, it came with the Universal Dock a RCA cable that connects to line out, but for some reason I have trouble displaying videos. It seems like my sound works but video does not show up on TV. I tried changi

  • IMovie '13: Import window does not open

    I can't get the Import Window to open. (Sure it worked the first time I tried) Anyone with same problem? Anyone with a possible solution? No matter if I press Import in the toolbar or use the menu (cmd I) the main window will dim, but the overlaying

  • Cannot install due to corrupt profile

    Hello, I am trying to install the SQL 2012 express instance for use with the Windows 8.1 ADK on windows 7 Ult. SP1. It keeps failing and the only thing I can see in the logs points to a corrupt profile for the sql server account. I need to know how t

  • How long does it usually take to charge your card for an iTunes purchase?

    hi, i bought a song a few days ago and it still has not shown up on my debit card yet. How long does this usually take? Also the first time I purchased a song it didn't seem to download the same way the second one did and didn't show up at all in my

  • Allocation script error

    We need to allocate $100 from Selling, Distribution etc. (Lvl 0 members of Function dim) into Product-Channel combination, say in 40% and 60% for Jan. The users input these percentages in data forms, which can vary for each month. The $100 is in Sell