SOAP Sender Adapter: CDATA in response is lost

Hi,
Issue: CDATA sections in response messages are removed in the adapter engine and content of what used to be a CDATA section is replaced with HTML equivalents.
Simplified version of my scenaio:
Request is sent to SAP XI via synchronous SOAP adapter (HTTPS). Next BPM receives the request and returns the request as response. A response mapping creates static output which contains a CDATA section. This is done via an XSLT mapping.
When I look in AFW the response looks just as expected. The CDATA section is present and everythings nice.
When I look in ICM everything also looks very nice - CDATA section is present.
When I receive the response in my client (uses both SAP SOAP client and wfetch) cdata section is gone and replaced with HTML equivalents.
If I sent message directly into integration engine instead of using AFW then the response is returned nicely - CDATA section is present.
Anybody can explain this?
Best Regards,
Daniel

ok, kind of stupid.
After some reconsideration the following became clear to me:
1) ICM handles communication in/out of ABAP stack and thus is not really relevant to consider for the problem at hand.
2) The fact that my Sender SOAP adapter is using SOAP envelope, means that the adapter has to parse the response when wrapping it in an envelope. During this proces the CDATA section disappear because its all the same to the parser in any case.
Problem solved - "mystery" explained! In order to send CDATA section as a response I thus need to manually handle the SOAP envelope.

Similar Messages

  • Request Response Bean for SOAP Sender Adapter

    Hi Friends,
    Is it possible to use  Request Response Bean Module described (FIle to RFC to File here) for SOAP(sender) and JDBC(receiver) adapter?
    I want to configure SOAP to JDBC to JDBC scenario.
    http://wiki.sdn.sap.com/wiki/display/HOME/UsingRequestResponseBeanModuleinFILE+Adapter
    Scenario:
    I will do SOAP adapter call Asynchronously and JDBC receiver adapter will select data from database. This response will go back to SOAP adapter and then SOAP will divert this response to another JDBC adapter. This JDBC adapter will insert data into another database.
    I do not want to use ccBPM. Is there any design approach to implement this scenario?
    Thanks,
    Sandeep Maurya

    Hi Sandeep,
    SAP says SOAP sender adapter does not support Modules. You can serch Help.sap (for SOAP sender channel) to find the same.
    I would suggest to use AXIS adapter (provides all the functionality of SOAP) and supports the Modules as well.
    I have used the Module beans that you mentioned in the past... but it is not consistent with its processing.. sometimes it stucks with Message ID issue... I have seen same issue faced some other friends as well .. search on SDN you will find the issue with these modules...
    Using BPM would be another option...
    Thanks,
    Sunil Singh

  • Error while posting messages to SOAP sender adapter SP 13

    Hi Friends,
                    I have configured a SOAP sender adapter in XI 3.0 and is using the URL
    http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_WEBSERVICE:CC_WEBSERVICE_SOAP to post the messages. When I open the URL in the browser I am getting the error.
    Message Servlet is in Status ERROR
    Status information:
    Servlet com.sap.aii.af.mp.soap.web.MessageServlet (Version $Id: //tc/aii/30_VAL_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#5 $) bound to /MessageServlet
    Classname ModuleProcessor: null
    Lookupname for localModuleProcessorLookupName: localejbs/ModuleProcessorBean
    Lookupname for remoteModuleProcessorLookupName: null
    ModuleProcessorClass not instantiated
    ModuleProcessorLocal not instantiated
    ModuleProcessorRemote not instantiated
    But when I test the URL http://host:port/XISOAPAdapter/HelperServlet?action=FindChannel&channel=:BS_WEBSERVICE:CC_WEBSERVICE_SOAP to check the communication channel I am getting the right response as below.
    <?xml version="1.0" ?>
    <http://host:port/XISOAPAdapter/HelperServlet?action=FindChannel&channel=:BS_EBTR_WEBSERVICE:CC_EBTR_WEBSERVICE_SOAP> <s:ChannelInfo xmlns:s="http://sap.com/xi/WebService/xi30">
      <channelID>e7ac884596ea3d088cbfd8b434f942f2</channelID>
      <name>CC_WEBSERVICE_SOAP</name>
      <type xmlns:st="http://sap.com/xi/XI/System">st:SOAP</type>
      <direction>INBOUND</direction>
      <party />
      <service>BS_WEBSERVICE</service>
      </s:ChannelInfo
    I used the http capture to debug, In the 1st case though I am getting "Message Servlet in status error" I am seeing a 200 OK code in the http capture tool. When the message is posted from .net client proxy we are getting a 500 internal server error.
    Am not sure what causes the error ? I saw two notes in SDN related to SOAP - J2EE SP13. We are in SP13. Is this the issue ? Wanted to know your opinion before applying the notes.
    Thanks & Regards,
    Mathew

    ABAP & Java stack was on different SP levels.

  • ASMA in SOAP Sender adapter.

    Hi All,
    Using ASMA under SOAP sender adapter I am trying to get the username of the user . I am referring below links for the same:
    /people/michal.krawczyk2/blog/2009/05/26/pixi-pseudo-principal-propagation (referring this only for getting username)
    getting user name from sopa header
    But while testing through XML SPY , i am getting error :
    Com.sap.engine.interfaces.messaging.api.exception.MessagingException: Received HTTP response code 500 : Error during parsing of SOAP header.
    Please help??.
    Thanks
    Amit

    Hi.
    I have created WSDL file using below URL:
    http://ISVSAPPIDEV:50100/XISOAPAdapter/MessageServlet?channel=:BS:CC_SOAP_Sender
    Actually its a synchronous SOAP -PI - RFC scenario. When i am pinging the PI through XML spy(ASMA AND Transport Binding is UNCHECKED in soap sender channel)  i am getting the response back from RFC,  but when i am pinging after chking the ASMA and Transport Binding in SOAP sender adapter i am getting this error(the message is itself not reaching the PI):
    Com.sap.engine.interfaces.messaging.api.exception.MessagingException: Received HTTP response code 500 : Error during parsing of SOAP header.
    Thanks
    Amit

  • Invocation of SOAP Sender Adapter using Apache SOAP

    Hi,
    I'm trying to invoke the XI SOAP Sender Adapter using the Apache SOAP API. It seems that my message header is missing a few parameters (see exception below). Does anybody know which to set?
    Regards,
    Heiko
    ==========
    Exception:
    <?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[
    com.sap.aii.af.mp.module.ModuleException
         at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:502)
         at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl3.process(ModuleLocalLocalObjectImpl3.java:103)
         at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:227)
         at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0.process(ModuleProcessorLocalLocalObjectImpl0.java:103)
         at com.sap.aii.af.mp.soap.web.MessageServlet.callModuleProcessor(MessageServlet.java:162)
         at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:507)
         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:392)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:345)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:323)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:865)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:240)
         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: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.doPrivileged1(Native Method)
         at java.security.AccessController.doPrivileged(AccessController.java:321)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:159)
    Caused by: java.lang.Exception: Bubble configuration error: parameter 'XI.InterfaceNamespace' is missing
         at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.getParaRequired(XISOAPAdapterBean.java:895)
         at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.createDefaultMessageHeader(XISOAPAdapterBean.java:942)
         at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.setup(XISOAPAdapterBean.java:214)
         at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:496)
         ... 22 more
              ]]></text>
            </s:SystemError>
          </detail>
        </SOAP:Fault>
      </SOAP:Body>
    </SOAP:Envelope>

    Hi Heiko,
    You are missing the Namespace Parameter in the sender soap adapter configuration in XI3.0
    Thanks
    Prasad

  • Another SOAP Sender adapter "com.sap.aii.af.mp.module.ModuleException" erro

    I am working on a synchronous scenario SOAP <-> XI <-> RFC.
    This worked fine, when I run it without SOAP adapter, direct via XI Pipeline.
    Now I want to use the SOAP sender adapter, but get the error as described below this post.
    As this is a real new XI installation, some patches or updates might be required to make it work. Or some adapter modules ?
    Any suggestions on how to solve this problem will be rewarded.
    What worries me a bit is the line "  " in the error description.
    Extra info: I use SoapSonar as a test webservice client. The error is the message as received in te test client.
    <?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>ModuleUnknownException</code>
              <text><![CDATA[
    com.sap.aii.af.mp.module.ModuleException: either no channelID specified or no channel found for the specified party, service, and channel name, MessageServlet(Version $Id: //tc/xi/645_VAL_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#9 $)
         at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:427)
         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:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:160)
         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>

    Hi Chandravadhana,
    The colon should be there :
    http://help.sap.com/saphelp_nw04/helpdata/en/69/a6fb3fea9df028e10000000a1550b0/frameset.htm
    The inbound address for SOAP messages is: http://host:port/XISOAPAdapter/MessageServlet?channel=party:service:channel
    Under party:service:channel enter the party name, the service name, and the name of the communication channel. If no party has been created, enter the following: channel=:service:channel
    Regards
    Suraj

  • Hi all, Please suggest a case where there is a requirement for new SOAP sender adapter module. I wanted to develop a module but in my current project i am unable to find any such requirement.

    Hi all, Please suggest a case where there is a requirement for new SOAP sender adapter module. I wanted to develop a module but in my current project i am unable to find any such requirement. So please give me inputs for the same..
    Thank you,
    Vinay Kumar A

    You can try converting a synchrnous soap call to asynchronous using a custom module
    Here your module will send a response back to the sender system and make an asynchronous call forward

  • Reading Header data in a SOAP Envelope for SOAP Sender Adapter

    Hello All,
    Am using a SOAP sender adapter and want to use the data inside the SOAP Header for some routing purpose(extended receiver determination). Any SOAP message coming into XI will look something like below. But XI will pass the contents of <SOAP-ENV:Body> to Payload and <SOAP-ENV:Header> to the SOAP Header category you can see that in SXMB_MONI.
    Is there a way to read the data in my SOAP Header to be later used in my extended receiver determination.
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:Q-ENV="/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <SOAP-ENV:Header>
              <Q-ENV:Header>
                   <Q-ENV:Sender-Id>1</Q-ENV:Sender-Id>
                   <Q-ENV:Receiver-Id></Q-ENV:Receiver-Id>
                   <Q-ENV:Correlation-Id></Q-ENV:Correlation-Id>
                   <Q-ENV:Message-Id></Q-ENV:Message-Id>
                   <Q-ENV:Date-Sent></Q-ENV:Date-Sent>
                   <Q-ENV:Document-Type></Q-ENV:Document-Type>
                   <Q-ENV:Message-Format></Q-ENV:Message-Format>
              </Q-ENV:Header>
         </SOAP-ENV:Header>
         <SOAP-ENV:Body>
              <Q-ENV:Body>
                   <Q-ENV:Content-Type>text/xml</Q-ENV:Content-Type>
                   <Q-ENV:Message-Type></Q-ENV:Message-Type>
                   <Q-ENV:Encoding>UTF-8</Q-ENV:Encoding>
                   <Q-ENV:Message-Body>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Thanks for your replies in advance.
    Regards,
    Prashanth

    Hello,
    but they were not getting any response back from XI and the sending system kept resending the message.. may be it was acting like a HTTP post.
    The method that is used by the native SOAP Adapter is always HTTP Post. Not sure why you are not getting a response, have you checked the outbound firewall of the sending party or the inbound firewall of XI? To which SOAP URL are you sending to?
    Hope this helps,
    Mark

  • Use of variable header XHeaderName1 in SOAP sender adapter

    Hi all,
    I have a doubt regarding the use of adapter-specific attributes in SOAP sender adapter. In specific:
    the SOAP client should be able to pass a variable with the SOAP request (XHeaderName1 header variable) and this should be available in mapping (Dynamic configuration)
    I've already checked the [help page|http://help.sap.com/saphelp_nw04/helpdata/en/fc/5ad93f130f9215e10000000a155106/frameset.htm] but it seems I'm doing something wrong.
    I tried with those settings in SOAP adapter configuration:
    Keep headers checked
    XHeaderName1 = Test
    I try to call the SOAP adapters in the following 2 ways, but none works (the value is not available in message mapping with Dynamic configuration)
    1. Pass "Test" value xxxx in SOAP Header as a tag
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <SOAP-ENV:Header>
              *<Test>xxxx</Test>*
         </SOAP-ENV:Header>
         <SOAP-ENV:Body>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    2. Pass "Test" value xxxx in SOAP URL
    http://host:50000/XISOAPAdapter/MessageServlet?channel=p:s:c&version=3.0&Sender.Service=...&Interface=...&Test=xxxx
    Could anyone give me a hint about how to pass those values in the SOAP call and eventually the correct config. of SOAP sender ?
    Thanks a lot,
    Manuel

    Hi Manuel,
    Could you give a bit more detail on how you handled the SOAP message yourself.
    I have a similar issue. I am consuming a non SAP Web Service which requires a non-standard token element to be passed back. I have created a an RFC sender to SOAP reciever scenario which works fine for the inital logon and returns the token it expects in the follow up messages.
    At present I'm at a loss so your help would be much appreciated. We have got round the immediate issue by creating and sending the SOAP message directly from SAP WAS.
    Could we use the XI Adapter and ABAP proxy in a similar way?
    Thanks,
    Tim J.

  • Adapter Module in SOAP Sender Adapter

    Hi All,
    To Confirm, Is it possible to use Custom Adapter Modules in SOAP Sender Adapter. If so, where exactly custom module has to be placed in communication channel with respect to the standard bean of SOAP Adapter.
    Thanks in advance.
    Regards,
    Sudharshan N A

    Hi,
    The sender adapter cannot be extended Check this
    http://help.sap.com/saphelp_nwpi711/helpdata/en/43/951aceb1146353e10000000a11466f/frameset.htm
    http://help.sap.com/saphelp_nwpi711/helpdata/en/cd/5af7c0c994e24fb0d0088443513de2/frameset.htm
    Regards
    Suraj

  • Using SOAP Sender adapter in PI 7.1

    Hi Guys,
    I've created a sync scenario with SOAP sender adapter, but I have troubles with calling it.
    I use following URL: http://<host>:50000/XISOAPAdapter/MessageServlet?channel=:BS_Bus_Sys:CC_SOAP_Test as I did in XI 3.0, but I'm getting error HTTP 400 Bad Request. I'm using the request generated from the IR Configuration.
    Has something changed in 7.1 for this type of scenario?
    Thanks guys,
    Olian

    Hi! Olian,
    I think u r going in a wrong way. The above given URL is wrong and incomplete one.
    The above url comes only after generating the WSDL. You ill gives that URL to ur source team to post their data at which this URL itselfs acts as an Gateway to enter into SAP XI/PI.
    The generated WSDL contains URL like this>>
    "http:// Host:Port/XISOAPAdapter/MessageServlet?senderParty=&amp;senderService=Business Service&amp;receiverParty=&amp;receiverService=&amp;interface=SenderInterfaceI&amp;interfaceNamespace=http://XXXXXXXX" />
    Also follow the below procedure for generating the WSDL.
    Except generating WSDL remaining all development steps are same as creating File to Proxy Scenario.
    CREATING THE WEBSERVICE IN XI :
    1) In Integration Directory, go to Tools tab --> Define Web Services.
    2) Now one Wizard window will opens and follow the below steps:
    Here donu2019t go for the u2018 Proposed URLu2019, instead specify the URL as::
    http://<host>:<j2ee-port>/XISOAPAdapter/MessageServlet?channel=:<service>:<channel>
    If there is party then ::
    http://host:port/XISOAPAdapter/MessageServlet?channel=<party>:<service>:<channel>.
    3) Specify the Source Messageu2019s Message Interface.and remaining other input parameters.
    4) Specify the Sender Business Serviceu2019s details:
    5) Here, Cross check the details displayed and then click on u2018Finishu2019 button to create the Web Service
    document(WSDL)
    6) Now Save the WSDL code to the local system. At the bottom u ill get URL based on the above input
    URl:
    Note: Here in XI there is no XML Testing tool or SOAP client tool to test SOAP messages. That is why most of the people prefer either ALTOVA XML SPY Tool or SOAP CLIENT TOOL or INFO PATH.
    If your working on PI 7.1 means::
    1) Simply after creating Sender Agreement go to options above to that sender agreement instead of tools menu... and there you can observe 2 options at the bottom side.
    a) PUBLISH in SR
    b) Generate WSDL.
    2) Once after activating your ID componenets just Press or go for option Publish in SR. Then automatically it will generate WSDL and publish that WSDL in the SERVICE REGISTRY. which is latest concept in PI 7.1.
    3) Now by entering authentification details you can able to enter into service registry.
    There are 4 tabs::
    a) Service definitions
    b) Publish
    c) classifications
    d) Manage.
    Go for Service definitions::
    4) Enter your sender SOAP interface and press GO or enter.
    5) Select your interface and then at the bottom u can observe again 4 tabs:
    a) General b) End Points c) classifications d) System Details.
    6) In the general you can able to see your WSDL URL by again entering Authentification details.
    7) Now Click End Points>Test Button>Enter Authentification details-->Seelct your Interface
    Note:: Now you can test your scenario in this WEB SERVICE NAVIGATOR.
    8) There you can enter you can pass your Input data parameters in your SOAP interface and execute or test your scenario here itself without any using of external tool like Altova XML or SOAP client tool.
    I hope the above information will give you a detailed information in generating and testing webservice right.
    Regards::
    Amar Srinivas Eli

  • SOAP Sender adapter - how to turn off authentication? PI 7.1

    Hello
    I wolud like to turn off the user authentication in the Soap Sender Adapter PI 7.1. What is the easiest way to do so?
    Regards,
    Elling Skjetlein

    Hello,
    If you mean about using Single Sign-On (SSO) for automatic login, then
    you can refer to the following links:
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/44/31370f01ae23d1e10000000a1553f7/frameset.htm
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/48/acb27f23be6200e10000000a421937/frameset.htm
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/c4/5c5ae71140bb41868f10bc7f3411db/frameset.htm
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/e5/4344b6d24a05408ca4faa94554e851/frameset.htm
    Hope that help.
    Regards,
    Caio Cagnani

  • Using custom http headers in SOAP sender adapter

    Hi,
    my problem is exactly the same as reported [here|Re: SOAP Sender - Extract Header Values;] and [here|Variable Transport Binding - Soap Sender;
    Basically I'd like to send through the soap sender adapter some custom http headers. I check the necessary options in the advanced tab (set adapter-specific message attributes and variable transport binding), and in the variable header one I put x-StoreCode, which is the same http header I send to PI.
    But I won't see anything in the dynamic configuration section when the message is persisted in PI.
    Very surprised that I've seen this issue is a common problem others have faced before without success.
    Thanks!

    Hi Michal,
    the extra info I'm trying to send separated from the message is an http header, not part of the query string.
    If I incorporate the extra info as a parameter to the query string like this, for example:
    http://host:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=S1&receiverParty=&receiverService=&interface=Int&interfaceNamespace=urn:test&x-StoreCode=13&nosoap=true
    Then I can see the value in the dynamic configuration section:
    <SAP:Record namespace="http://sap.com/xi/XI/System/SOAP" name="SQueryString">senderParty=&senderService=S1&receiverParty=&receiverService=&interface=Int&interfaceNamespace=urn:test&x-StoreCode=13&nosoap=true</SAP:Record>
    But what I'm trying to do shoould be possible, according to sap help:
    http://help.sap.com/saphelp_nwpi71/helpdata/en/fc/5ad93f130f9215e10000000a155106/content.htm (section Define Adapter-Specific Message Attributes)

  • SOAP Sender Adapter Not working

    We have the following Synchronous sceanrio: Third Party System <> PI <> SAP ECC
    The interface works well in our DEV and PreProd environments but has stopped working in our QA environment.
    The SOAP Sender Adapter is giving me the following error:
    failed to initialize: org.apache.axis.ConfigurationException:
    java.lang.ClassNotFoundException: ------------------------- Loader Info -------------------------
    ClassLoader name: library:com.sap.aii.af.axisproviderlib] Living status: alive Direct parent loaders:   system:Frame   library:com.sap.base.technology.facade   library:engine.j2ee14.facade] Resources:  
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/axis.jar  
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/commons-discovery-0.2.jar  
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/commons-logging-1.0.4.jar  
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/commons-net-1.0.0-dev.jar  
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/wsdl4j-1.5.1.jar  
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/xmlsec-1.4.0.jar  
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/wss4j-1.5.6.jar 
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/opensaml-1.0.1.jar  
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/xalan-2.6.0.jar
    Currently the Quality of Service for the communication channel is set to "Best Effort" because it is a Synchronous Interface. However if I change the Quality of Service to "Exactly Once" the message is received by PI without any problems. So the problem is specific to Synchronous.
    I tried to create a new communication channel and use that but that didnt help.
    We have checked on the server and all the above mentioned .jar files are all in place.
    I have compared the Processing Sequence and Module Configuration of the Module tab (for the communication channel) with the other environments and everything seems to be fine.
    Any help would be much appreciated.
    Thanks,
    Krishneel

    Hi Krishna,
    ClassLoader name: library:com.sap.aii.af.axisproviderlib] Living status: alive Direct parent loaders:   system:Frame   library:com.sap.base.technology.facade   library:engine.j2ee14.facade] Resources:  
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/axis.jar  
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/commons-discovery-0.2.jar  
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/commons-logging-1.0.4.jar  
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/commons-net-1.0.0-dev.jar  
    /usr/sap/XQ1/DVEBMGS01/j2ee/cluster/bin/ext/com.sap.aii.af.axisproviderlib/lib/wsdl4j-1.5.1.jar
    Have you deployed the following Jar.
    commons-discovery-0.2.jar
    ○       commons-logging-1.0.4.jar
    ○       commons-net-1.0.0-dev.jar
    ○       wsdl4j-1.5.1.jar
    Refer this
    http://help.sap.com/saphelp_nw04/helpdata/en/45/a4f8bbdfdc0d36e10000000a114a6b/content.htm
    Edited by: Debashish Roy on Jul 18, 2011 10:10 AM

  • Remove XML Prefix in SOAP Sender Adapter

    Hi
    I am using a SOAP sender adapter and testing it from SOAP UI. The format that is generated from the web service is
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
       <soapenv:Body>
          <sap:SALES_ORDER xmlns:sap="http://XYZ.org/">
             <sap:HEADER>
                <sap:BATCH_ID>XYZ</sap:BATCH_ID>
                <sap:CREATE_DT>XYZ</sap:CREATE_DT>
    This format when processed in SOAP UI gave error which its not giving for other files. Clearly I need to remove this sap: tag, I can't use XML anonymizer as it is SOAP adapter and I can't select do not use soap env...Could anyone provide me Java/xslt code for the same..I tried all the codes on sdn but none of them worked.
    Regards,

    SImple Java mapping, that should help
    import java.io.InputStream;
    import java.io.OutputStream;
    import com.sap.aii.mapping.api.*;
    import org.w3c.dom.*;
    public class DeleteCDATA_DOM_mapping extends  AbstractTransformation  {
         public void traceXML(Node n,int i)
         {   AbstractTrace trace = getTrace();
              trace.addInfo(i+"$"+n.getNodeName());
              trace.addInfo(i+"$"+n.getNodeValue());
              trace.addInfo(i+"$"+n.getNodeType()+"");
         public void traceNL(NodeList nl)
              {       for (int i=0 ; i<nl.getLength();i++)
                        traceXML(nl.item(i),i);
         public void transform(TransformationInput in, TransformationOutput out)
                   throws StreamTransformationException {
                        AbstractTrace trace = getTrace();
                             try {
                                  InputStream is0=in.getInputPayload().getInputStream();
                                  StringBuffer out1 = new StringBuffer();
                                  byte[] b = new byte[4096];
                                  for (int n; (n = is0.read(b)) != -1;) {
                                       out1.append(new String(b, 0, n,"UTF-8"));
                                  String sss=out1.toString();
                                  sss=sss.replaceAll("<sap:", "<");
                                  sss=sss.replaceAll("</sap:", "<");
                                  OutputStream os = out.getOutputPayload().getOutputStream();
                                  os.write(sss.getBytes("UTF-8"));
                             } catch (Exception e) {
                                  throw new StreamTransformationException(
                                       "Exception in DeleteCDATA_DOM_mapping JAVA mapping ): "
                                            + e.getMessage());

Maybe you are looking for