SOAP request configuration (namespaces)

Hi there,
I am trying to consume a web service via CAF/Netweaver which requests a certain name space. here an extract of the wsdl.
- <wsdl:types>
- <s:schema elementFormDefault="qualified" targetNamespace="http://www.serviceobjects.com/">
- <s:element name="GetAddressPlus">
- <s:complexType>
- <s:sequence>
  <s:element minOccurs="0" maxOccurs="1" name="Address" type="s:string" />
  <s:element minOccurs="0" maxOccurs="1" name="Address2" type="s:string" />
Unfortunately, the SOAP request which gets created by the Netweaver SOAP adapter (which is correct) can't be understood by the service provider (see pns:GetAddressPlus)
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Body>
    <pns:GetAddressPlus xmlns:pns="http://www.serviceobjects.com/">
      <pns:Address>1016 Poplar Drive</pns:Address>
      <pns:City>Collierville</pns:City>
      <pns:State>TN</pns:State>
      <pns:PostalCode>38017</pns:PostalCode>
For the service to work properly, the namespace shall not be attached to the parameters, but just added to the parent element of the message, see below (only GetAddressPlus, no leading namespace)
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Body>
    <GetAddressPlus xmlns="http://www.serviceobjects.com/">
      <Address>1016 Poplar Drive</Address>
      <City>Collierville</City>
      <State>TN</State>
      <PostalCode>38017</PostalCode>
Is there a workaround to configure the SOAP generation in such a way, that no namespaces are used within the SOAP message ?
Thx, Nick
Edited by: Nick Laqua on Aug 10, 2009 9:00 PM

Hi,
Using SOAP UI  you can type whatever you want to type in request page (SOAP Message), Do not type in form but in xml.
So in first attempt type SOAP Message with prefix,
in Second attempt modify SOAP request without prefix manually.
Please post error message (as you said "that the request can't have zero length") this means Service is not receiving request at all, else message should be about "Not well formed" message.
I believe that this error is not really related to formatting of request and namespace
Please try it with SOAP UI.
Regards,
Gourav

Similar Messages

  • NameSpace Prefix in SOAP Request

    How can I create SOAP Request without namespace prefix from a WSDL file.
    I am using ClientGen (WL 7.0, SP2)
    My Application doesn't accept namespace prefix.
    Thanks

    How can I create SOAP Request without namespace prefix from a WSDL file.
    I am using ClientGen (WL 7.0, SP2)
    My Application doesn't accept namespace prefix.
    Thanks

  • SOAP- XI- RFC , while posting soap request thru SPY , getting exception,

    Hello friends,
    I am trying <b>SOAP->XI->RFC</b> scenario. would like to explain in brief about requirement then <b>let me know if this is correct approach</b>
    <i>Our client wants a pull approach from R/3 , for example lets say he wants to get Material Master data from R/3.
    So he will send a SOAP request with the material number and r/3 should return back the details.</i>
    <b>So we have decided to go with SOAP->XI->RFC approach
    That means a sender SOAP Adapter and a receiver RFC adapter,</b>
    I have done all the designing, like creating my own DataType,MessagType all interfaces etc.
    then i created a Bussiness system of type third party with host name as XI host name to use for sender, and a business system of type Web As ABAP and used one of the R/3 as receiver system.
    Doubts: Once i created Soap channel in my sender businees system(where Interface name i gave my Message Interface name and its Namespace), and the receiver channel in my another bussiness system, i created the entire scenario using Configuration Wizard.
    NOW THE PROBLEM STARTS.
    After clicking Define Web Service , it asks for URL
    i gave following url
    http://ps3181:50000/XISOAPAdapter/MessageServlet?channel=TPBS_Rohit:soapChannel
    TPBS_Rohit is my Sender (third party bussiness system name), and soapChannel is the channel under it.
    <b>tell me if this is right</b>
    Then in the Message Interface i selected my Message Interface name that i had created in Design for publishing.
    <u><b>MAJOR DOUBT</b></u>
    <b>It Asks for
    Service :
    Interface Name :
    Interface NameSpace :
    what do i give here.</b>
    this is what i have given
    Service : TPBS_Rohit, Sender (third party bussiness system name)
    Interface Name : MI_SOAP <again the same message interface name that i have published earlier>
    Interface NameSpace : same namespace.
    AM i right ???
    I am sure somthing is wrong since when i tried sending a SOAP request using XML SPY , this is what i get.
    [code]<?xml version="1.0"?>
    <!-- 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>Exception</code>
                             <text><![CDATA[
    java.lang.Exception: invalid channel (party:service:channel) = TPBS_Rohit:soapChannel
         at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:498)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:385)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:263)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:340)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:318)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:821)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:239)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:147)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)
         at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)
         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:94)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:162)
              ]]></text>
                        </s:SystemError>
                   </detail>
              </SOAP:Fault>
         </SOAP:Body>
    </SOAP:Envelope>[/code]
    Please Let me know where have i gone wrong ?

    hi manikandan,friends
    i changed the url to http://ps3181:50000/XISOAPAdapter/MessageServlet?channel=:TPBS_Rohit:soapChannel
    colon included.
    but now i get the following error trace in SPY ..
    [code]<?xml version="1.0"?>
    <!-- see the documentation -->
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
         <SOAP:Body>
              <SOAP:Fault>
                   <faultcode>SOAP:Server</faultcode>
                   <faultstring>failed to call the adapter engine</faultstring>
                   <detail>
                        <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                             <context>XIAdapter</context>
                             <code>DeliveryException</code>
                             <text><![CDATA[
    com.sap.aii.af.mp.module.ModuleException
         at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:697)
         at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl3.process(ModuleLocalLocalObjectImpl3.java:103)
         at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:221)
         at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0.process(ModuleProcessorLocalLocalObjectImpl0.java:103)
         at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:543)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:385)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:263)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:340)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:318)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:821)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:239)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:147)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)
         at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)
         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:94)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:162)
    Caused by: com.sap.aii.messaging.srt.BubbleException: failed to call the adapter engine [null "null"]; nested exception caused by: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:NO_RECEIVER_CASE_BE:
         at com.sap.aii.af.mp.soap.ejb.AFCallerApplication.perform(AFCallerApplication.java:122)
         at com.sap.aii.messaging.srt.ApplicationBubble.onMessage(ApplicationBubble.java:29)
         at com.sap.aii.messaging.srt.ExtensionBubble.onMessage(ExtensionBubble.java:56)
         at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:576)
         ... 20 more
    Caused by: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:NO_RECEIVER_CASE_BE:
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:366)
         at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:123)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:419)
         at com.sap.engine.frame.core.thread.Task.run(Task.java:60)
         at com.sap.engine.core.thread.impl5.SingleThread.execute(SingleThread.java:73)
         at com.sap.engine.core.thread.impl5.SingleThread.run(SingleThread.java:145)
              ]]></text>
                        </s:SystemError>
                   </detail>
              </SOAP:Fault>
         </SOAP:Body>
    </SOAP:Envelope>[/code]

  • Sending SOAP request from XI and writing a scheduler for this

    Dear XI Experts,
    My scenario is as follows.
    We have two landscapes
    1)     XI, R/3
    2)     Client System(Remote, Other than SAP)
    Now we have to pull the data from client system using WSDL (There will be one method for pulling the data in the WSDL file). The WSDL is provided by the client. We are importing that WSDL as external definition in Integration Repository and implementing the scenario “SOAP to XI to RFC” and configuring it Integration Directory.
    Remember the client will not send the data to XI. Only we have to pull the data as mentioned above.
    Problems:-
    (i)     How to send SOAP request to the client using XI only?
    (ii)     How to write a scheduler for this?
    please help us.
    Thanks...
    Praveen Gujjeti

    Ur Suggestion
    "My proposition looks like that. in R/3 you have scheduled RFC call in some program. This RFC calls XI and XI is calling using SOAP adapter your client. Then response go back to your RFC and you can handle this data."
    As you mentioned, I am not scheduling any RFC call in R/3. If you go through my first query u can find two points where I am having some doubts......
    How to send SOAP request to the client using XI only? Is it possible to send a SOAP request from XI?
    If so,
    (ii) How to write a scheduler for this? So that it will invoke the webservice and get the data from client application(system)

  • Sending a SOAP request with binary attachment

    hi all,
    I am sending a SOAP request from a SOAP client SOAP UI  with a binary attachment ( image file as an attachment )  and creating a file on the receiver side with attachment.
    But how do i see this attachment in XI and do i have to specify some additional configuration in my receiver or sender adapter modules.
    Regards ,
    Loveena.

    creating a file on the receiver side with attachment.
    Is this working? Receiver file adapter does not support attachment.
    But how do i see this attachment in XI
    In the pipeline steps, under payload, you will find two entries, one for payload and other for attachment.
    Regards,
    Prateek

  • Calling SOAP Request from XML Spy

    I have published PLSQL web service at Oracle 10g AS.
    The web service runs at http://localhost:7201/reqProcess with processRequest as method being exposed.
    This web service takes the string as input and return XMLTYPE as out parameter.
    Now When I am trying to pass SOAP XML from XMLSPY to above url I am getting folloing errors.
    1) I get http error: couldnot post the file /reqProcess/ on server 'localhost' (500)
    2) I get SOAP Error as
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <SOAP-ENV:Body>
              <SOAP-ENV:Fault>
                   <faultcode>SOAP-ENV:Client</faultcode>
                   <faultstring>No Deserializer found to deserialize a &apos;http://wsi.nat.zz.com/2005/06/StandardHeader/:m0:standardHeader&apos; using encoding style &apos;null&apos;. [java.lang.IllegalArgumentException]</faultstring>
                   <faultactor>/reqProcess</faultactor>
              </SOAP-ENV:Fault>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Please help..

    Hi Quwang ur help needed
    My requirement ...
    1) PLSQL as web service : I succesffuly deployed PLSQL Procedure as Web service at 10 10g. The PLSQL takes string (CLOB) as input convert that into XML and store in table and return XMLTYPE as output.
    When I am accesing PLSQL WS using browser I am able to send string (basically XML format) as a input and able to receive the result back (SOAP envelop)
    2)WS Invocation : After PLSQL WS published I need to pass the SOAP XML which is generated from XYX wsdl file to the PLSQL WS published above. For this req I was using XML Spy to test this. (In actual the clinet will be Sieble that will send SOAP XML to PLSQL WS).
    Initially I was generating the SOAP XML from XYZ.wsdl and was directly sending that to PLSQL URL. I was getting error as I described initially.
    Next I tried to generate the SOAP request from the PLSQL WS wsdl file and inside the parameter I am sending the SOAP XML as string to the IN paramater of PLSQL WS. This time I am getting some different errors. The first error is same as http error: couldnot post the file /balprocess/balprocess/operation?processRequest on server 'localhost' (500)
    and second error is SOAP fault as follows
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <SOAP-ENV:Body>
              <SOAP-ENV:Fault>
                   <faultcode>SOAP-ENV:Server</faultcode>
                   <faultstring>java.sql.SQLException: ORA-31011: XML parsing failed
    ORA-19202: Error occurred in XML processing
    LPX-00210: expected &apos;<&apos; instead of &apos;"&apos;
    Error at line 1
    ORA-06512: at "SYS.XMLTYPE", line 0
    ORA-06512: at "SCOTT.BAL_A_PROCESS", line 16
    ORA-06512: at line 1
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:137)</faultstring>
                   <faultactor>/balprocess/balprocess</faultactor>
              </SOAP-ENV:Fault>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    For ur reference I am pasting the PLSQL WSDL file and the SOAP request xml that I am sending to PLSQL WS URL.
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="bal_a_process"
    targetNamespace="http://bal.request.process/bal_a_process.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://bal.request.process/bal_a_process.wsdl"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd1="http://bal.request.process/bal_a_process.xsd" >
    <documentation>
    WSDL for Service: bal_a_process, generated by Oracle WSDL toolkit (version: 1.1)
    </documentation>
    <types>
    <schema targetNamespace="http://bal.request.process/bal_a_process.xsd" xmlns:tns="http://bal.request.process/bal_a_process.xsd" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dom="http://xmlns.oracle.com/2001/XMLSchema/DOM">
    <complexType name="bal_request_process_bal_a_processUser_processRequest_Out">
    <all>
    <element name="outresponsexmlOut" type="dom:org.w3c.dom.DocumentFragment"/>
    </all>
    </complexType>
    </schema>
    </types>
    <message name="processRequestOutput">
    <part name="return" type="xsd1:bal_request_process_bal_a_processUser_processRequest_Out"/>
    </message>
    <message name="processRequestInput">
    <part name="param0" type="xsd:string"/>
    </message>
    <portType name="bal_a_processPortType">
    <operation name="processRequest">
    <input message="tns:processRequestInput"/>
    <output message="tns:processRequestOutput"/>
    </operation>
    </portType>
    <binding name="bal_a_processBinding" type="tns:bal_a_processPortType">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
    <operation name="processRequest">
    <soap:operation soapAction="urn:bal-request-process-bal_a_process/processRequest"/>
    <input>
    <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:bal-request-process-bal_a_process"/>
    </input>
    <output>
    <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:bal-request-process-bal_a_process"/>
    </output>
    </operation>
    </binding>
    <service name="bal_a_process">
    <port name="bal_a_processPort" binding="tns:bal_a_processBinding">
    <soap:address location="http://localhost:7200/balprocess/balprocess"/>
    </port>
    </service>
    </definitions>
    Request I am sending to PLSLQ WS URL
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <SOAP-ENV:Body>
              <processRequest xmlns:m="urn:bal-request-process-bal_a_process" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
                   <param0 xsi:type="xsd:string">     "<a>"aaa"</a>"     </param0>
              </processRequest>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    I above SOAP request XML i m testing "<a>"aaa"</a>" as XML string. but this is also getting failed. In actual this will be SOAP XML request from some other XYZ wsdl file.
    Quwang ur help needed urgently.
    Regards

  • There is no payload in Soap request

    Hi Expert,
    I am testing Soap to RFC scenario. I am firing the soap request using Altova xmlspy. I am getting the response as cannot read payload. I checked in the Moni, no payload is coming to xi. but i am sending data through soap request. Below the response wat i am getting
    <?xml version="1.0"?>
    <!-- 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>RecoverableException</code>
                             <text><![CDATA[
    com.sap.aii.af.ra.ms.api.RecoverableException: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:CANNOT_READ_PAYLOAD:
         at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:919)
         at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl3.process(ModuleLocalLocalObjectImpl3.java:103)
         at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:258)
         at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0.process(ModuleProcessorLocalLocalObjectImpl0.java:103)
         at com.sap.aii.af.mp.soap.web.MessageServlet.callModuleProcessor(MessageServlet.java:167)
         at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:424)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         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:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
              ]]></text>
                        </s:SystemError>
                   </detail>
              </SOAP:Fault>
         </SOAP:Body>
    </SOAP:Envelope>
    Please help me out in this issue
    Thanks,
    Venky

    Hi,
    Check whether your payload message which you are passing in HTTP Client tool is correct or not, try to copy the payload from Integration Repository while testing your mapping program.
    Also check the Integration Engine Configuration runtime parameters,
    Open Transaction SXMB_ADM -> Integration Engine Configuration -> Change Specific Configuration
    Check the values of below given parameters for runtime category, these values must be maintained:
    LOGGING, LOGGING_SYNC, LOGGING_PROPAGATION, TRACE_LEVEL and TRACE_LEVEL_PROPAGATION.
    Look into this thread ... it seems something similar with your problem.
    Payload of SOAP-Message cannot be read Try these solutions.
    Regards
    Aashish Sinha

  • PI 7.1 SOAP Action parameters in SOAP request?

    Hi all,
    I have to implement an IDOC->PI->XML interface to transfer some master data. After performing the mapping, the mapped data needs to be sent to the target system using a SOAP request via a webservice.
    On PI, I specified the URL for the WS in a SOAP-oriented Communication Channel. In the parameter "SOAP Action" of this CC, I entered the relevant method name to be used to transfer the mapped data. However, this method requires 2 parameters:
    - applicationName: this is the name of the target structure used in the Message Mapping
    - xmlMessage: this is the actual mapped message string
    So my question is: how can I bind these 2 parameters in my PI design and configuration?
    Thanks for your help,
    Eric

    there can be one WS having many actions....which means one WS can be used in multiple interfaces.
    However, this method requires 2 parameters:
    - applicationName: this is the name of the target structure used in the Message Mapping
    - xmlMessage: this is the actual mapped message string
    If I get it correctly, you have to actually set the SOAP action before you send the message to the WS....and you want to do it in SAP PI?
    so your action is something like http://something.abcd/applicationName/xmlMessage and you have to set the things here?
    If yes, then you can use the Dynamic Configuration (adapter specific message attributes...ASMA) in SOAP channel (UDF in mapping) and set this ASMA THeaderSOAPACTION
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get
    (StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP","THeaderSOAPACTION");
    String a = http://something.abcd/applicationName/xmlMessage //set the value of actual action here
    conf.put(key, a);
    return "";
    Regards,
    Abhishek.

  • Web Service Call From Proxy Client in ABAP: View SOAP Request

    Hello All,
    We are working on a scenario where we have to connect to a web service from ABAP. We have extracted the WSDL, and generated the client proxy, and configured a Logical Port. However, at the time of actual call, we receive an error message "Header http://schemas.xmlsoap.org/ws/2004/08/addressing:Action for ultimate recipient is required but not present in the message.". We suspect that this is a problem with the SOAP Header, which might be missing some tags, which are required by the Web Service. Problem is, we can not trace the Web Service SOAP Header. We can not see it in SOAMANAGER, or any other transaction as such. Does any body have an idea where to look for the complete SOAP Request, in case of a Client Proxy call?
    Thanks and Regards,
    Sid

    Hello Sebastian,
    Thanks for replying. We are using a higher support pack level, and hence we do not use LPCONFIG; rather we use SOAMANAGER to manage the web service logical ports. Further, SMICM would display us ICM Logs, where as we need the exact SOAP request that has been generated. We tried ST11 with no luck.
    Finally, I feel this is a wrong forum to ask such an application related question. I will close this thread and open a new thread in either PI or ABAP Forum.
    Thanks and Regards,
    Sid

  • SOAP request error

    Dear XI Expertise,
    I am doing a scenario on SOAP>XI>System.....
    First thing my SOAP Adapter is not enabled when I see in the RWB-->Adapter Monitoring
    For this I searched the forum and followed almost all the blogs.......but could not find a solution......
    Especially in one blog thread I found one person has faced & been solved the same problem which I am facing. But for me it is not working......
    Here is the URL for that one...
    how can i enable SOAP Adapter?
    "In almost all the blogs, I found a solution given by some experts that when we send our first SOAP message, it will be automatically activated". But for me this is also not working.........
    I designed and configured my scenario in IR & ID and created a WSDL file for my outbound interface. Actually I created outbound interface from external definition (WSDL) which I got from EP side.....
    I used XML spy and created a "new SOAP request" from WSDL file which I generated from ID and given proper input in that message and sent the request.
    When I sent the request I got the following error message(dialog box)....
    HTTP error could not POST File
    ‘/XlSOAPAdapter/MessageServlet?channel=:LEGACYSYS_PRA_BS:WS_Sender&amp;version=3.O&amp;Sender.Service=LEGACYSYS_PRA_BS&amp;lnterIace=ns%3%2F%2Ffx.com%2Farchana%2Fwstorfc%5EPR_Out_MI’ on server ‘bcone-prd'(500).
    when I click ok, In the next dialog box I got this message
    "Error sending the SOAP data"
    Please help me out............
    Advance Thanks
    Praveen Gujjeti

    Praveen ,
    May I suggest a workaround till your SOAP adapter issue is not reolved?
    There are 2 URL's to which a SOAP message can be posted.
    1. You post it to the Adaptee Engine and the SOAP adapter then sends it to the Integration Engine.
    2. You post the message to the Integration Engine directly.
    The url you are now using is pointing to 1.
    Recreate the WSDL with the following URL-->
    <b>http://<server>:<ABAP-port>/sap/xi/engine?type=entry&version=3.0&Sender.Service=<YourService>&Interface=<YourNamespace>%5E<YourInterface></b>
    Click on Propose URL while defining the WSDL. More is on this blog,
    /people/stefan.grube/blog/2006/09/21/using-the-soap-inbound-channel-of-the-integration-engine
    Let me know if it solves the problem partially?
    Regards,
    Bhavesh

  • SOAP Request Error in OSB Console

    Hi,
    I'm just learning OSB, and I tried to test out a web service project that I'd built. I deployed the project onto Weblogic, created the WSDL file for the business service in OSB and mounted that as well, but when I try to test it, the SOAP response gives the following error: Cannot find dispatch method for {http://calculatorservice}doAdd
    I'm using JDeveloper 11.1.1.4, WebLogic 10.3.4 and OSB 11gR1.
    The complete source code is as follows:
    Calculator.java
    package calculatorservice;
    import javax.jws.WebService;
    @WebService(targetNamespace="http://calculatorservice")
    public class Calculator implements CalculatorIF{
    @Override
    public int doAdd(int a, int b){
    return a + b;
    @Override
    public int doSub(int a, int b){
    return a - b;
    CalculatorBusinessService.wsdl
    <?xml version="1.0" encoding="UTF-8" ?>
    <definitions name="CalculatorBusinessService"
    targetNamespace="http://calculatorservice"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://calculatorservice"
    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:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:types="http://calculatorservice">
    <types>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://calculatorservice"
    targetNamespace="http://calculatorservice"
    elementFormDefault="qualified">
    <xsd:complexType name="AddInput">
    <xsd:sequence>
    <xsd:element name="arg0" type="xsd:int"/>
    <xsd:element name="arg1" type="xsd:int"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="AddOutput">
    <xsd:sequence>
    <xsd:element name="result" type="xsd:int"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="SubInput">
    <xsd:sequence>
    <xsd:element name="arg0" type="xsd:int"/>
    <xsd:element name="arg1" type="xsd:int"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="SubOutput">
    <xsd:sequence>
    <xsd:element name="result" type="xsd:int"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="doAddRequest" type="tns:AddInput"/>
    <xsd:element name="doAddResponse" type="tns:AddOutput"/>
    <xsd:element name="doSubRequest" type="tns:SubInput"/>
    <xsd:element name="doSubResponse" type="tns:SubOutput"/>
    </xsd:schema>
    </types>
    <message name="doAddInput">
    <part name="parameters" element="tns:doAddRequest"/>
    </message>
    <message name="doAddOutput">
    <part name="parameters" element="tns:doAddResponse"/>
    </message>
    <message name="doSubInput">
    <part name="parameters" element="tns:doSubRequest"/>
    </message>
    <message name="doSubOutput">
    <part name="parameters" element="tns:doSubResponse"/>
    </message>
    <portType name="Calculator">
    <operation name="doAdd">
    <input message="tns:doAddInput"/>
    <output message="tns:doAddOutput"/>
    </operation>
    <operation name="doSub">
    <input message="tns:doSubInput"/>
    <output message="tns:doSubOutput"/>
    </operation>
    </portType>
    <binding name="CalculatorBinding" type="tns:Calculator">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/http"/>
    <operation name="doAdd">
              <soap:operation style="document"/>
              <input>
                   <soap:body use="literal"/>
              </input>
              <output>
                   <soap:body use="literal"/>
              </output>
    </operation>
    <operation name="doSub">
              <soap:operation style="document"/>
              <input>
                   <soap:body use="literal"/>
              </input>     
              <output>
                   <soap:body use="literal"/>
              </output>
    </operation>
    </binding>
    <service name="CalculatorSerivce">
         <port name="CalculatorPort" binding="tns:CalculatorBinding">
              <soap:address location="http://localhost:7001/Calculator-CalculatorService-context-root/CalculatorPort" />
         </port>
    </service>
    </definitions>
    Now, here are the SOAP messages auto-generated by OSB console:
    SOAP Request:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    </soap:Header>
    <soapenv:Body>
    <cal:doAdd xmlns:cal="http://calculatorservice">
    <cal:arg0>3</cal:arg0>
    <cal:arg1>3</cal:arg1>
    </cal:doAdd>
    </soapenv:Body>
    </soapenv:Envelope>
    SOAP Response:
    <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
    <S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
    <faultcode>S:Client</faultcode>
    <faultstring>
    Cannot find dispatch method for {http://calculatorservice}doAdd
    </faultstring>
    </S:Fault>
    </S:Body>
    </S:Envelope>
    I'd be really grateful if anyone could point out my mistakes.
    Thank You
    Edited by: Debojit Sinha on Feb 4, 2011 7:35 PM

    Hi Palak,
    If you are talking about the weblogic test client for the web service, then yes I was. Also, since my last post, I tried to run the business service by copy-pasting the WSDL generated by the server and using it to create the Business service, and it works fine. The results are wrong, but the error is gone. So, I think that I can safely conclude that the problems lies i the WSDL. I haven't been able to pinpoint the source, unfortunately. Comparing the two also turned up nothing. As far as I can tell, they are both semantically identical. But to let you judge for yourself, here's the server-generate WSDL:
    <?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.5. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.5. --><definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://calculatorservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://calculatorservice" name="CalculatorService">
    <types>
    <xsd:schema>
    <xsd:import namespace="http://calculatorservice" schemaLocation="http://localhost:7001/Calculator-CalculatorService-context-root/CalculatorPort?xsd=1"/>
    </xsd:schema>
    </types>
    <message name="doAdd">
    <part name="parameters" element="tns:doAdd"/>
    </message>
    <message name="doAddResponse">
    <part name="parameters" element="tns:doAddResponse"/>
    </message>
    <message name="doSub">
    <part name="parameters" element="tns:doSub"/>
    </message>
    <message name="doSubResponse">
    <part name="parameters" element="tns:doSubResponse"/>
    </message>
    <portType name="Calculator">
    <operation name="doAdd">
    <input message="tns:doAdd"/>
    <output message="tns:doAddResponse"/>
    </operation>
    <operation name="doSub">
    <input message="tns:doSub"/>
    <output message="tns:doSubResponse"/>
    </operation>
    </portType>
    <binding name="CalculatorPortBinding" type="tns:Calculator">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
    <operation name="doAdd">
    <soap:operation soapAction=""/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>
    <soap:body use="literal"/>
    </output>
    </operation>
    <operation name="doSub">
    <soap:operation soapAction=""/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>
    <soap:body use="literal"/>
    </output>
    </operation>
    </binding>
    <service name="CalculatorService">
    <port name="CalculatorPort" binding="tns:CalculatorPortBinding">
    <soap:address location="http://localhost:7001/Calculator-CalculatorService-context-root/CalculatorPort"/>
    </port>
    </service>
    </definitions>

  • Implement a SOAP Request in an SSIS Package that sends a SOAP Message (Env) with Authentication Info, Receives XML FIle?

    We need a small SSIS package to pass a SOAP message to a SOAP server and receive the response xml message. 
    We have the SOAP Endpoint, SOAP Action, and SOAP Message (which contains authentication elements). They work in a Talend Data Integration job (using
    Talend's tSOAP component). A screenshot showing the Talend job and the configuration of the tSOAP component
    is attached.
    We need to implement the same thing in a Microsoft SQL Server 2012 SSIS package but haven't been able to get an SSIS Web Services task to work. 
    We haven't been able to configure it to pass the SOAP Action and SOAP Message.  
    How should this be accomplished in SSIS?
    kholberger

    I guess I was not clear.  The Talend job works perfectly (and it took only a few minutes to configure). 
    I need to replicate the SOAP request function in an SSIS package.  I've been trying to configure an SSIS Web Services Task to do that without success. 
    The SSIS Web Service Task asks for the .wsdl file, which I provide (though the Talend component
    does not ask for it), but the SSIS WST does not ask for the SOAP Action or SOAP message.  The target web service is protected by a security gateway that rejects the SSIS WST request.  Somehow, the Talend tSOAP component sends the
    SOAP message, which contains the security definition and authentication credentials (you can see part of that in the screen shot) which the endpoint accepts.
    The question is: "How does one implement a SOAP web service request in an SSIS package that sends the SOAP Message".
    Thanks.
    kholberger

  • How to pack attribute values in a soap request?

    Hello,
    We are trying to make an external webservice call through GWWS.
    The (soap) request contains an element which looks like:
    +<Request Version="1.0" RequestID="11111111" TypeOfRequest="type1" Echo="false">+
    +<Info>+
    +<Account xmlns="http://something.com/Domain1/">ABCD1234</Account>+
    +</Info>+
    +</Request>+
    We had created this soap request based on the WSDL provided to us by the webservice host.
    We used a tool (like soapui) to generate the the above request.
    To be able to make a service call to this webserive, we used the wsdlcvt to generate the fml32 field headers as:
    wsdlcvt -i <provided wsdl> -o <baseoutput name>
    However we could not find a way to pack in the the information related to the attributes.
    In vain, we tried to use the option [-m] with wsdlcvt.
    Since there are no field headers generated by the wsdlcvt for the attributes, we do not know how do we put values of "Version", "RequestID", "TypeofRequest", "Echo" attributes of the "Request" element in the webservice request.
    Are we missing something here?
    How can we populate/put information in the attributes of an element in a request?
    Thank you.
    Sincere Regards,
    Mrugendra

    Hello Xu,
    We have a simple test wsdl as follows
    +<?xml version="1.0" encoding="UTF-8"?>+
    +<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://new.webservice.namespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://new.webservice.namespace">+
    +<wsdl:types>+
    +<xsd:schema targetNamespace="http://new.webservice.namespace" xmlns="http://new.webservice.namespace" elementFormDefault="unqualified" attributeFormDefault="unqualified">+
    +<xsd:complexType name="Service_Type">+
    +<xsd:sequence>+
    +<xsd:element name="DateTime" type="xs:dateTime" nillable="true">+
    +</xsd:element>+
    +<xsd:element name="UUID" type="xs:string" nillable="true">+
    +</xsd:element>+
    +<xsd:element name="Status" nillable="true" minOccurs="0" maxOccurs="unbounded">+
    +<xsd:complexType>+
    +<xs:sequence>+
    +<xs:element name="StatusDesc" type="xs:string">+
    +</xs:element>+
    +</xs:sequence>+
    +<xsd:attribute name="StatusTyp" type="xs:string" use="required">+
    +</xsd:attribute>+
    +</xsd:complexType>+
    +</xsd:element>+
    +</xsd:sequence>+
    +<xsd:attribute name="Version" type="xs:string" use="required">+
    +</xsd:attribute>+
    +<xsd:attribute name="Name" type="xs:string" use="required">+
    +</xsd:attribute>+
    +</xsd:complexType>+
    +</xsd:schema>+
    +</wsdl:types>+
    +<wsdl:message name="GetServiceReq">+
    +<wsdl:part name="ServiceReq" type="tns:Service_Type"/>+
    +</wsdl:message>+
    +<wsdl:message name="GetServiceRes">+
    +<wsdl:part name="ServiceRes" type="tns:Service_Type"/>+
    +</wsdl:message>+
    +<wsdl:portType name="ServicePortType">+
    +<wsdl:operation name="getService">+
    +<wsdl:input message="tns:GetServiceReq"/>+
    +<wsdl:output message="tns:GetServiceRes"/>+
    +</wsdl:operation>+
    +</wsdl:portType>+
    +<wsdl:binding name="ServiceBinding" type="tns:ServicePortType">+
    +<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>+
    +<wsdl:operation name="getService">+
    +<soap:operation soapAction="getService"/>+
    +<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="getService" binding="tns:ServiceBinding">+
    +<soap:address location="No Target Adress"/>+
    +</wsdl:port>+
    +</wsdl:service>+
    +</wsdl:definitions>+
    When we create a soap request (Using soapiu) from the above wsdl we get:
    +<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">+
    +<soapenv:Header/>+
    +<soapenv:Body>+
    +<ServiceReq Version="?" Name="?">+
    +<DateTime>?</DateTime>+
    +<UUID>?</UUID>+
    +<!--Zero or more repetitions:-->+
    +<Status StatusTyp="?">+
    +<StatusDesc>?</StatusDesc>+
    +</Status>+
    +</ServiceReq>+
    +</soapenv:Body>+
    +</soapenv:Envelope>+
    As you can see that ServiceReq has attributes Version and Name
    However, wsdlcvt (with -m) creates the following fml32 headers
    DateTime        1       string  -       fullname=DateTime, schema=xs:dateTime
    ServiceReq      2       fml32   -       fullname=ServiceReq, schema=tns:Service_Type
    ServiceRes      3       fml32   -       fullname=ServiceRes, schema=tns:Service_Type
    Status  4       fml32   -       fullname=Status, schema=tns:Status
    StatusDesc      5       mbstring        -       fullname=StatusDesc, schema=xs:string
    UUID    6       mbstring        -       fullname=UUID, schema=xs:string
    The points that we did not understand:
    1. You mentioned: "SALT will map the *whole* request to FLD_MBSTRING
    It is not so in this case.
    Did we miss something?
    2. Going by your suggestion in your last reply how do we create the FML32 buffer (specifically for the "ServiceReq" element, with attributes) for the sample we have?
    Thank you.
    Sincere Regards,
    Mrugendra

  • Service security using SOAP request

    Hi,
    I need to create 2 services with SOAP request using one with X.509 Authentication and other with X.509 Encryption.
    The receiver side is the RFC adapter.
    Please let me know how to go about in PI7.0 or PI7.1
    Regards,
    Kevin

    U will have to first enable SSL on the XI server using one of the following two modes:
    http://help.sap.com/saphelp_nw04/helpdata/en/d8/a922d7f45f11d5996e00508b5d5211/frameset.htm
    SSL can be enabled as shown
    http://help.sap.com/saphelp_nw04/helpdata/en/14/ef2940cbf2195de10000000a1550b0/content.htm
    Then configure the system to use X.509 certificates
    http://help.sap.com/saphelp_nw04/helpdata/en/a8/d9d53a9aa9e933e10000000a114084/frameset.htm
    Regards,
    Prateek

  • Manual soap request results in SBL-ODU-01009 error

    Hopefully someone can assist here - I am making a manual soap request to which I receive a http 400 -bad request with the SBL-ODU-01009 error in the response header. I cannot find any reference to this error in any of the documentation that I have. Does anyone know what the error means, or know of a place to look for the answer?
    Thank you in advance,
    JJ

    I did a little more sleuthing and realized that the error text was being sent back to me as the body of the http 400 error. The 01009 error is related to a bad or unresolvable namespace in the soap request. So if anyone gets this error, that's what it means. I had a errant space character in the middle of one of my namespace definitions.

Maybe you are looking for

  • Java form look and feel changed

    Whenever I load a java form application now, it seems to have reverted back to some non-native form components e.g. http://www.codeproject.com/KB/java/theme/theme.gif I would prefer this to return to what it was originally and take on the appearance

  • Convert a string in dd/mm/yy form  into a date in mm/dd/yy form

    hi everyone am having a problem. i have a jsp page which receives a "request.getParameter("date")" My user has input this date in the format dd/mm/yy but i need to output this date to my db which accepts mm/dd/yy format. Am thinking of implementing t

  • I phone Urgent Problem

    Dear All: I have bought a new I phone mobile 16GB 3G, I connected to the internet. and some downloads occur. My phone pad stated to function improperly, so I forced to reset the device by: Settings --> general ---> Reset All Sitiings and contents. A

  • Should i be turning off my computer every night

    should i be turning off my computer every night

  • Unable to find file [any file].htm in the Configuration/Floaters directory (CS6) [Solved]

    This is more of an answer than a question. I had been having this problem all of a sudden, and none of the solutios I'd found on Adobe or anywhere else were working. SO sicne the easy route wasn't working, I looked at it myself. A key lead came from