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.

Similar Messages

  • Blank SOAP Action in Soap Request- Portal Service calling Web Service

    Hi
    I'm trying to access an Web Service through a client portal service which was generated by NWDS. I called this service from a basic component and tried to execute the WS function after populating all the needed fields. When I started the component I encountered the following error.
    java.lang.IllegalArgumentException: The SOAP Action "" include in the soap request not corresponding to the Portal service method..
    I initially thought it was because I was downloading the WSDL to my local and using that in the portal service generation. Maybe not all the information about the web service was being obtained. I tried it again after generating the portal service from the WSDL online but still obtained the same error.
    Any insight on what's causing the error would be appreciated. Thanks!

    Dear expert.
    i got the same problem with Reyes. anyone can solve this issue?
    thank in advance.

  • Generated SOAP request parameters wrong?

    hello everybody,
    when you generate a WSDL out of the integration directory.
    Do you SOAP request parameters work correct or do you have to modify them.
    We have to modify them and have to insert strings like >&amp<
    Do we anything wrong?
    Regards Mario

    Hi,
    I had to modify the order of tags (when used with webdynpro)
    but I don't remember the SP, path...
    but never  >&<
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • 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

  • 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 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

  • Trying to invoke HTTPService with SOAP request

    Hi all,
    I have been trying to invoke a HTTPService with a SOAP request.
    Most of the times I get an error saying that the client has invoked
    HTTP with get instead of a POST eventhough my code takes care of
    it. Any clue on this? I have copied the code snippet below which
    has the SOAP request in a variable message.
    <?xml version="1.0"?><!--
    fds\rpc\WebServiceAddHeader.mxml -->
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    height="628" width="924">
    <mx:Script>
    <![CDATA[
    import mx.messaging.messages.HTTPRequestMessage;
    import mx.messaging.messages.SOAPMessage;
    var message:SOAPMessage = new SOAPMessage();
    public var msg:HTTPRequestMessage = new
    HTTPRequestMessage();
    public function headers():void {
    msg.contentType = HTTPRequestMessage.CONTENT_TYPE_SOAP_XML;
    msg.method = HTTPRequestMessage.POST_METHOD;
    msg.url = "
    http://ldlt7316.wellsfargo.com:8016/hulaweb/FrameworkServletListener";
    msg.body = <SOAP-ENV:Envelope xmlns:SOAP-ENV="
    http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:msg="
    http://service.wellsfargo.com/entity/message/2003/"
    xmlns:hcfg="
    http://service.wellsfargo.com/provider/HCFG/entity/envelope/2004/"><SOAP-ENV:Header><msg:W FContext><msg:messageId>1175034929937</msg:messageId><msg:sessionSequenceNumber>1</msg:ses sionSequenceNumber><msg:creationTimestamp>2007-03-27T04:35:29-0600</msg:creationTimestamp> <msg:originatorId>aow</msg:originatorId><msg:initiatorId>AOW</msg:initiatorId></msg:WFCont ext><hcfg:hulaContext><service>ApplicationDataService</service><action>getApplicationByDea lID</action><msg:processingMode>sync</msg:processingMode><contextType>SERVICE_REQUEST</con textType><password>PASSWORD123</password><msg:behaviorVersion>1</msg:behaviorVersion></hcf g:hulaContext></SOAP-ENV:Header><SOAP-ENV:Body><ns:getLendingData
    xmlns:ns="
    http://service.wellsfargo.com/provider/HCFG/common/lendingDataTransfer/getLendingData/2006 /"><servicePreferences><ns1:maximumWaitTime
    xmlns:ns1="
    http://service.wellsfargo.com/provider/HCFG/entity/common/2004/">600</ns1:maximumWaitTime> <ns1:maxReturn
    xmlns:ns1="
    http://service.wellsfargo.com/entity/message/2003/">10</ns1:maxReturn></servicePreferences ><lendingTransaction><transactionDetail>
    <ns1:dealId xmlns:ns1="
    http://service.wellsfargo.com/provider/HCFG/entity/transactionDetail/2005/">
    323010
    </ns1:dealId></transactionDetail></lendingTransaction></ns:getLendingData></SOAP-ENV:Body ></SOAP-ENV:Envelope>
    soapCall.request = msg;
    soapCall.method = "POST";
    soapCall.send();
    ]]>
    </mx:Script>
    <mx:HTTPService
    id="soapCall"
    resultFormat="xml"
    method="post"
    showBusyCursor="true"
    makeObjectsBindable="false"
    useProxy="false"
    requestTimeout="120"
    url="
    http://ldlt7316.wellsfargo.com:8016/hulaweb/FrameworkServletListener"
    request="{msg}">
    </mx:HTTPService>
    <mx:Panel layout="absolute" title="{soapCall.lastResult}"
    id="blog" fontFamily="Courier New">
    <mx:DataGrid x="15" y="10" id="dgPosts" width="482"
    dataProvider="{soapCall.lastResult}" height="108">
    <mx:columns>
    <mx:DataGridColumn headerText="Name"
    dataField="code"/>
    <mx:DataGridColumn headerText="Dates"
    dataField="lastName"/>
    </mx:columns>
    </mx:DataGrid>
    <mx:LinkButton label="Get Data" click="headers()"/>
    <mx:TextArea x="15" y="145" width="782" fontSize="9"
    fontFamily="Verdana" borderStyle="inset"
    htmlText="{soapCall.lastResult}" height="379"/>
    </mx:Panel>
    </mx:Application>

    Would really appreciate some help with this issue. Thanks!

  • Getting following error when sending soap request to PI

    Hi All,
              I am trying to send the following soap request to XI
    =======================================================================
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:gip="urn:pmintl.com/Gips02">
       <soapenv:Header/>
       <soapenv:Body>
          <gip:MT_GIPSTOSMDLSYN_REQ>
             <Source>
               <xmlDocument><sender><name>GiPS</name><environment>Dev</environment><UserID>ymargub</UserID></sender><message GiPSChange="C69695" op="Release"><Col N="RELEASE_DATE">2009-01-22</Col><Col N="CHG_DESCRIPTION">Automatic Release</Col></message></xmlDocument>
             </Source>
          </gip:MT_GIPSTOSMDLSYN_REQ>         
       </soapenv:Body>
    </soapenv:Envelope>
    ================================================================================
    I am getting a error as shown below . In runtime workbench under communication channel it is also showing "null pointer exception". The details of message given below . Can anyone please analyse where it is going wrong. Everything from sender agreement to communication channel is in place.
    =================================================================================
    <!-- 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>java.lang.NullPointerException at com.sap.aii.af.sdk.xi.mo.xmb.XMBMessageOperator.getQualityOfServiceAsString(XMBMessageOperator.java:2048) at com.sap.aii.adapter.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:843) at sun.reflect.GeneratedMethodAccessor789_10002.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:43) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute

    Hi,
    Please cross check the URL that you are giving in Proposed URL option wihile you are generating the WSDL.
    Type the URL that you are using as i mentioned in above in Intenet Explorer and press Enter. This should give Message servelet ok.
    Then clear CPA Cache and test your scenario, it will work ( Provided you should fill SOAP Adatpter parameters correctly in ID).
    Thanks
    Subbu

  • 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

  • Flex sending corrupt SOAP request

    I've created a PHP5 SOAP webservice and am trying to call a
    method from flex. I get a fault from the Flex app that says
    faultString="HTTP request error"
    faultCode="Server.Error.Request"
    The SOAP request received by the server is as follows (which
    I think explains why the server responded with an error):
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="
    http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="
    http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="
    http://www.w3.org/2001/XMLSchema-instance">
    <SOAP-ENV:Body/>
    </SOAP-ENV:Envelope>
    It is missing all the body parameters. What could cause an
    empty request like this?
    The relevant AS:
    public var _webServiceLoaded:Boolean = false; // flag noting
    when wsdl has been loaded
    public var _myService:WebService = new WebService();
    public function initWS():void {
    _myService.wsdl = "
    http://foreignserver.com/seminar_service.wsdl";
    _myService.loadWSDL();
    _myService.echoArgs.addEventListener("result",
    echoResultHandler);
    _myService.addEventListener("fault", faultHandler);
    _myService.addEventListener('load',WSLoad);
    public function send_attendee_email():void {
    _myService.echoo("qwerty"); // should just return the same
    string we send; echoo spelled with extra o
    And my wsdl:
    <?xml version="1.0"?>
    <definitions
    xmlns="
    http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="
    http://www.w3.org/2001/XMLSchema"
    xmlns:tns="
    http://foreignserver.com/seminar_service.php"
    xmlns:soap="
    http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsdl="
    http://schemas.xmlsoap.org/wsdl/"
    xmlns:soapenc="
    http://schemas.xmlsoap.org/soap/encoding/"
    targetNamespace="
    http://foreignserver.com/seminar_service.php">
    <message name="echooInput">
    <part name="echo" type="xsd:string"/>
    </message>
    <message name="send_attendee_emailInput">
    <part name="sem_date" type="xsd:string"/>
    <part name="sem_first" type="xsd:string"/>
    <part name="sem_last" type="xsd:string"/>
    <part name="sem_title" type="xsd:string"/>
    <part name="sem_company" type="xsd:string"/>
    <part name="sem_phone" type="xsd:string"/>
    <part name="sem_email" type="xsd:string"/>
    <part name="pdf_filename" type="xsd:string"/>
    </message>
    <message name="echooOutput">
    <part name="return" type="xsd:string"/>
    </message>
    <message name="send_attendee_emailOutput">
    <part name="return" type="xsd:string"/>
    </message>
    <portType name="seminarPortType">
    <operation name="echoo">
    <input message="tns:echooInput"/>
    <output message="tns:echooOutput"/>
    </operation>
    <operation name="send_attendee_email">
    <input message="tns:send_attendee_emailInput"/>
    <output message="tns:send_attendee_emailOutput"/>
    </operation>
    </portType>
    <binding name="seminarBinding"
    type="tns:seminarPortType">
    <soap:binding xmlns="
    http://schemas.xmlsoap.org/wsdl/soap/"
    style="rpc" transport="
    http://schemas.xmlsoap.org/soap/http"/>
    <operation xmlns:default="
    http://schemas.xmlsoap.org/wsdl/soap/"
    name="echoo">
    <input xmlns:default="
    http://schemas.xmlsoap.org/wsdl/soap/">
    <soap:body xmlns="
    http://schemas.xmlsoap.org/wsdl/soap/"
    use="encoded" encodingStyle="
    http://schemas.xmlsoap.org/soap/encoding/"/>
    </input>
    <output xmlns:default="
    http://schemas.xmlsoap.org/wsdl/soap/">
    <soap:body xmlns="
    http://schemas.xmlsoap.org/wsdl/soap/"
    use="encoded" encodingStyle="
    http://schemas.xmlsoap.org/soap/encoding/"/>
    </output>
    </operation>
    <operation xmlns:default="
    http://schemas.xmlsoap.org/wsdl/soap/"
    name="send_attendee_email">
    <input xmlns:default="
    http://schemas.xmlsoap.org/wsdl/soap/">
    <soap:body xmlns="
    http://schemas.xmlsoap.org/wsdl/soap/"
    use="encoded" encodingStyle="
    http://schemas.xmlsoap.org/soap/encoding/"/>
    </input>
    <output xmlns:default="
    http://schemas.xmlsoap.org/wsdl/soap/">
    <soap:body xmlns="
    http://schemas.xmlsoap.org/wsdl/soap/"
    use="encoded" encodingStyle="
    http://schemas.xmlsoap.org/soap/encoding/"/>
    </output>
    </operation>
    </binding>
    <service name="seminarService">
    <port xmlns:default="
    http://schemas.xmlsoap.org/wsdl/soap/"
    name="seminarPort" binding="tns:seminarBinding">
    <soap:address xmlns="
    http://schemas.xmlsoap.org/wsdl/soap/"
    location="
    http://foreignserver.com/seminar_service.php"/>
    </port>
    </service>
    </definitions>

    This behavior (empty SOAP request sent to server) stemmed
    somehow from my wsdl file. I'm uncertain what the specific problem
    was, but when I rebuilt the wsdl from scratch using a different
    model, the SOAP request from Flex was properly formed.

  • XFIRE - Java class from wsdl and soap request from java class

    Hi,
    Firstly i'm newbie programmer with little experience, so please help me if u can.
    I have found an example on how to create java classes from WSDL under maven:
    (...)<taskdef classname="org.codehaus.xfire.gen.WsGenTask" name="wsgen">(...)
    I've created the below java class and I create new object of this class: UploadChunk up = new UploadChunk()
    and up.setSomething(123) etc....
    I have some service for which I have to prepare soap request manually - suitable for my service requests.
    I'm doing it using dom4j to create xml documents and i rewrite values to it from my variable up.
    I wonder if it is possible to do it automatically - I have UploadChunk object and I want do use xFire library somehow to produce ready or almost ready soap request. I want to do it in my code, no some ant or maven task.
    So I propably need a couple line of code, when I have:
    up.setSomething(123);
    //////CONVERTION - CAN U TELL ME HOW TO DO THAT PLEASE? I haven't found the way :( it seems I need your help.
    //////Document result =....
    callService(result,namespace,qname);
    import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlType;
    * <p>Java class for UploadChunk complex type.
    * <p>The following schema fragment specifies the expected content contained within this class.
    * <pre>
    * <complexType name="UploadChunk">
    *   <complexContent>
    *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
    *       <sequence>
    *         <element name="SessionID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
    *         <element name="InputFileName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
    *         <element name="Buffer" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
    *         <element name="Offset" type="{http://www.w3.org/2001/XMLSchema}long"/>
    *         <element name="BytesRead" type="{http://www.w3.org/2001/XMLSchema}int"/>
    *       </sequence>
    *     </restriction>
    *   </complexContent>
    * </complexType>
    * </pre>
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "UploadChunk", propOrder = {
        "sessionID",
        "inputFileName",
        "buffer",
        "offset",
        "bytesRead"
    public class UploadChunk {
        @XmlElement(name = "SessionID")
        protected String sessionID;
        @XmlElement(name = "InputFileName")
        protected String inputFileName;
        @XmlElement(name = "Buffer")
        protected byte[] buffer;
        @XmlElement(name = "Offset")
        protected long offset;
        @XmlElement(name = "BytesRead")
        protected int bytesRead;
         * Gets the value of the sessionID property.
         * @return
         *     possible object is
         *     {@link String }
        public String getSessionID() {
            return sessionID;
         * Sets the value of the sessionID property.
         * @param value
         *     allowed object is
         *     {@link String }
        public void setSessionID(String value) {
            this.sessionID = value;
         * Gets the value of the inputFileName property.
         * @return
         *     possible object is
         *     {@link String }
        public String getInputFileName() {
            return inputFileName;
         * Sets the value of the inputFileName property.
         * @param value
         *     allowed object is
         *     {@link String }
        public void setInputFileName(String value) {
            this.inputFileName = value;
         * Gets the value of the buffer property.
         * @return
         *     possible object is
         *     byte[]
        public byte[] getBuffer() {
            return buffer;
         * Sets the value of the buffer property.
         * @param value
         *     allowed object is
         *     byte[]
        public void setBuffer(byte[] value) {
            this.buffer = ((byte[]) value);
         * Gets the value of the offset property.
        public long getOffset() {
            return offset;
         * Sets the value of the offset property.
        public void setOffset(long value) {
            this.offset = value;
         * Gets the value of the bytesRead property.
        public int getBytesRead() {
            return bytesRead;
         * Sets the value of the bytesRead property.
        public void setBytesRead(int value) {
            this.bytesRead = value;
    }

    Hi,
    Can u Please post the WSDL..here. I remember long back i resolved this kind of issue...when i was getting "*parameters is already defined in - - -*" while using ClientGen.
    Once i will get the WSDL may be i can recall it...
    If u have any problem in Posting the WSDL..in Forums .. then let me know I will send my E-Mail Address...
    As far as i remember ..it usually happens when we Run ClientGen task of WLS81 ON the WebService/WSDL generated by WebLogic 9.x or Above. Please let me know if this is the Case with you as well... . I remember there is a Patch for it...for WLS8 ClientGen task...I dont remember the Patch Number Exactly.
    Just For testing:
    Just Use WLS9.x ClientGen task On the Same WSDL
    <taskdef name="clientgen" classname="weblogic.wsee.tools.anttasks.ClientGenTask" />
    I am sure you will not see this issue... because the issue is there only with WLS8 Clientgen...
    Thanks
    Jay SenSharma
    http://jaysensharma.wordpress.com (WebLogic Wonders Are Here)
    Edited by: Jay SenSharma on Jan 8, 2010 4:32 PM
    Edited by: Jay SenSharma on Jan 8, 2010 4:34 PM

  • System Acknowledgement to SOAP request

    Hello All,
    While working on the following scenario SOAP -> XI -> ABAP Proxy, I need a system acknowledgement to be send back to the requesting system. I had few queries on the same.
    1. Currently in SXMB_MONI, I see the Ack. Status as blank. Does this mean that the server has not been setup for receiving acknowledgements?
    2. I did a lot of reading on the blogs and every where I find that that sender system needs to request for an acknowledgement. How do I get my SOAP message (or SOAP adapter) to request and acknowledgement?
    Kindly help,
    Thanks and Regards,
    Keerti

    After much research, I tried doing the following and it worked for me:
    Step 1:
    To do that, the SOAP request message must contain an additional tag in the request:
    <SOAP:Envelope …>
       <SOAP:Header>
          <SAP:ReliableMessaging SystemAckRequested="false" SystemErrorAckRequested="true"  ApplicationAckRequested="false" ApplicationErrorAckRequested="false" SOAP:mustUnderstand="1">
            <SAP:QualityOfService>ExactlyOnce</SAP:QualityOfService>
          </SAP:ReliableMessaging>
       </SOAP:Header>
    </SOAP:Envelope>
    Step 2:
    In the SOAP communication channel, turn on the Conversion Parameters > Keep Header.
    If anyone has any better ideas, please keep me posted on it.
    Regards,
    Keerti

  • Error while sending a soap request from XML SPY to a webservice in XI

    Hi ,
    I published a webservice om the XI end and testing it with consuming the WSDL file in XML SPY and sending a soap request from there.
    I am getting the following error .
    <b>com.sap.aii.af.mp.module.ModuleException: either no channelID specified or no channel found for the specified party, service, and channel name</b>, MessageServlet(Version $Id: //tc/xi/645_VAL_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#4 $)
         at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:380)
         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)
    Is this error due to the user authentication or due to some other issue .
    Please do let me know soon .
    Thanks a lot
    Nikhil

    Hi Ricardo ,
    I have the correct port now.
    the url looks like
    http://<host>:50000/XISOAPAdapter/MessageServlet?channel=:SIEBEL_DEV:SOAP_CUST
    when I am testing it in the XML spy. and send a soap server request. I am getting the popup for user authentication . once i put my user id it gives me a error saying
    <b>HTTP operation 'POST' could not be performed on URL
    '/XISOAPAdapter/MessageServlet?channel=:SIEBEL_DEV:SOAP_CUST&amp;version=3.0&amp;Sender.Service=SIEBEL_DEV&amp;Interface=http%3A%2F%2FOFCOM%2FUNIFY%2FCustomerMaster%5EMI_CUST'  due to an error :
    The connection to the server was terminated abnormally</b>
    Any Idea as to why is such a error is coming
    Thanks for the help
    Nikhil

  • Using a SOAP request to initiate an ESB flow

    I'm currently attempting to use the Oracle ESB as a pure routing engine for a project at work. Heres the basic way to works:
    1. We get a SOAP request from a third party
    2. We transform that request into a canonical format (via xslt)
    3. Inside that canonical format there will be an ID
    4. We look up that ID in a database and resolve an IP address from it
    5. We then use the canonical message to invoke a named web service on a SOAP server living at that IP
    So my questions are two fold really:
    Firstly, is it possible to fire off an ESB flow via a SOAP web service call? So far it seems (to me) that i can only initiate processes [flows - sorry im used to BPEL!] via an adapters (files, AQ, JMS, etc) and not from a raw SOAP request. It seems the SOAP object is an ESB object and not an incoming/outgoing adapter
    and
    Secondly, is it possible to make a database call/query and then use the result of that to intelligently route my canonical data to a specific SOAP server dynamically?
    I know i can do this in BPEL with little trouble but im trying see if its also plausible via ESB so i can leverage the performance and management benefits that come bundled with it.
    Any help would be great as i seem to be banging my head against a wall slightly!
    Thanks in advance,
    Ian Harrigan

    Thanks for the reply.
    Would it be possible to use an IP address (obtained from a database query) to dynamically call a web service of the same name but on different servers?
    Ie, if the incoming message has an ID attribute within it of, say, 10 then a request is made to server1, however if the ID is 11 then it goes to server2 and so on and so forth.
    I know this would be possible using a static filter but, unfortunately, that would mean that every time a new ID/Server combination is added to the database a new version of the ESB would have to be deployed which isn't feasible.
    Essentially i would need a single ESB and simply update the database with additional data and logic inside the ESB would send SOAP requests to a entirely new IP address
    Thanks again,
    Ian

Maybe you are looking for

  • F150 - dunning run

    Hi , In F150  t code, when the user press F4 on the "Run on" we  are finding almost 15000 entries. the users of the company code are finding difficult to find their own ID and Run date. This is happening due to merger of 5 systems.(System Landscape o

  • About exporting media

    I'm using mac & premiere cs6 I keep getting this message when my exporting reach 7 % "Sorry, a serious error has occurred that requires Adobe Premiere Pro to shut down. We will attempt to save your current project." what i have to export my editted f

  • HT1222 Indian user

    Dear sir I have iphone. With varsion 6.1.3 (10b329) Model mc 605  J/A Sr no 87031 BEHA 4T IMEI. 01 242900 294037 4 Modem firmware 04.12.05 In india how i use my iphone with indian SIM .which carriar is allowd in india?

  • How to DELETE my account

    Hello! I want to delete my account because I'm no longer going to be using it.The problem is that I don't know how to delete my account. Please help mee!! Thank You!

  • MSS Performance Management Error

    Hi All, I created MSS Performance Management iView in Portal. In this Page trying to create Appraisal Doucment and getting ESS Appraisal Docuemnt Page. Not getting Proformance Management Appraisal Page when clicking the button "Create". I have done a