SOAP Response Unmarshal Problem

I am using the SOAP Proxy Generator to generate stubs from a WSDL file.  This part is okay. 
When I use a method in the stub, the runtime generates an exception -- "null".  Yes that all it says.  I have verified that there is a SOAP response. You can find the actual response text below.
I have traced the problem to the following statement in the generated stub:
<i>perm.unmarshal((SOAPElementImpl) result, container);</i>
Does anyone know if this SOAP response is something that the SOAP client SDK can support?
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns5="http://www.themindelectric.com/package/com.esri.is.services.glue.v2.mapimage/" xmlns:ns6="http://www.themindelectric.com/package/com.esri.is.services.common.v2.geom/">
<soap:Body>
<n:getMapResponse xmlns:n="http://arcweb.esri.com/v2">
<Result href="#id0"/>
</n:getMapResponse>
<id0 id="id0" soapenc:root="0" xsi:type="ns5:MapImageInfo">
<mapUrl xsi:type="xsd:string">http://redlandsarcweb.esri.com/out/maps/GDT_ArcWeb_US_mangomap1735235894.jpg</mapUrl>
<legendUrl xsi:type="xsd:string">http://redlandsarcweb.esri.com/out/maps/GDT_ArcWeb_US_mangomap1735235895.jpg</legendUrl>
<mapExtent href="#id1"/></id0>
<id1 id="id1" soapenc:root="0" xsi:type="ns6:Envelope">
<minx xsi:type="xsd:double">-127.666666666666</minx>
<miny xsi:type="xsd:double">20.0000000000001</miny>
<maxx xsi:type="xsd:double">-106.333333333333</maxx>
<maxy xsi:type="xsd:double">35.9999999999999</maxy>
</id1>
</soap:Body>
</soap:Envelope>

I'm afraid the response I incuded earlier in this forum is a "touched" version.  I got it by using the response object in the generated stub.
I spoke to the developers of the web service and the response should look like:
<n:getMapResponse xmlns:n='http://arcweb.esri.com/v2' xmlns:ns1='http://www.themindelectric.com/package/com.esri.is.services.glue.v2.mapimage/' xmlns:ns2='http://www.themindelectric.com/package/com.esri.is.services.common.v2.geom/'>
<Result id='id0' xsi:type='ns1:MapImageInfo'>
     <mapUrl
xsi:type='xsd:string'>http://redlandsarcweb.esri.com/out/maps/GDT_ArcWeb_US_
blackmap606135221.png
     </mapUrl>
     <legendUrl xsi:type='xsd:string'></legendUrl>
     <mapExtent id='id1' xsi:type='ns2:Envelope'>
          <minx xsi:type='xsd:double'>-117.256667</minx>
          <miny xsi:type='xsd:double'>33.980556</miny>
          <maxx xsi:type='xsd:double'>-117.106667</maxx>
          <maxy xsi:type='xsd:double'>34.1305559999999</maxy>
     </mapExtent>
</Result>
</n:getMapResponse>
Is there a way to get the "actual" SOAP response that was received direct from the web service?  What is the official debugging method?

Similar Messages

  • Synchronous RFC -- SOAP Scenario: problem with SOAP Response/Fault Mapping

    Hi,
    I've a synchronous RFC --> PI --> SOAP Scenario. The problem is that the message structure of the sending RFC doesn't match the Webservice Structure.
    The (SAP standard) RFC has just a Request / Response message structure. Part of the Response Message structure is a exception structure.
    The Webservice has a Request / Response message structure and in case of an error I get a SOAP:Fault.
    Problem now is that I cannot configure that scenario without usage of BPM as I will have to map SOAP:Response or SOAP:Fault to the RFC Response structure.
    Has anybody another idea to do that synchronous scenario (with usage of message mapping) without BPM?
    BR
    Holger

    1)
    you maus define 3 mapping.
    1)request
    2)response
    3)Fault
    in Interface mapping define at response boths (2-3) mapping. its clear??
    2)
    otherwise sometjhing is not clear, why do you want fault?? why dont you  get only response message. we implement this kind of response:
    <response_MT>
    <ID> (error ID)
    <system> (target system) 
    <error> (Error Description)
    </response>
    by this way fault message is not needed. but if you must have it just follow the top of message else, propose second.
    Thanks
    Rodrigo
    Thanks
    Rodrigo
    Edited by: Rodrigo Pertierra on Feb 25, 2008 11:52 AM

  • Xsl/stylesheet transformation problem in soap response(usinf xmlx-tags.tld)

    Hi,
    I have problem in transforming the soap response using xmlx-tags.tld.....
    I was not able to read the <EmpName> value from the returned xml...
    The stylesheet / xsl does not return any elements if I use other then "/" in match
    attribute : <xsl:template match="/">
    here is my soap call and stylesheet in JSP:
    <x:xslt media="html">
    <x:xml>
    <ws:soap ttl="360000">
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
    ... making soap call here...
    </soap:Body>
    </soap:Envelope>
    </ws:soap>
    </x:xml>
    <x:stylesheet media="html">
    <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
    <xsl:output method="xmll" omit-xml-declaration="no"
    doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN" indent="yes" />
    <xsl:template match="GetEmpResult">
    <html>
    <body>
    Result: <B>Symbol <xsl:value-of select="EmpName"/></B>
    </body
    </html>
    </xsl:stylesheet>
    </x:stylesheet>
    </x:xslt>
    the SOAP response looks like this:
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
    <GetEmpResponse xmlns="http://ws.cdyne.com/">
    <GetEmpResult>
    <EmpID>string</EmpID>
    <EmpName>string</EmpName>
    <SalAmount>decimal</SalAmount>
    <Error>boolean</Error>
    </GetEmpResult>
    </GetEmpResponse>
    </soap:Body>
    </soap:Envelope>
    I tried all the possibilities of template matches, but not succeeded....
    Can somebody help me the correct <xsl:template> to access EmpName from the above
    SOAP responses...
    regards
    Vijay

    Hi,
    Dynamic xslt are not quite supported in OSB, there are some approaches that may be helpful for your case though...
    Have a look at these...
    http://atheek.wordpress.com/2011/12/21/using-xalanevaluate-to-parametrize-xpath/
    http://beatechnologies.wordpress.com/2010/12/01/dynamic-xquery-in-oracle-service-bus/
    Let me know how you go...
    Cheers,
    Vlad

  • Unmarshal SOAP response, as raw XML String with JAXB

    Hi,
    I have a soap response, as raw xml (a java.lang.String), and I want to unmarshal it's content into the classes generated by wsimport.
    This must be a simple task but I couldn't find a way to do it.
    Can someone tell me how I can achieve this ?
    Edited by: Raphael_Lemaire on May 25, 2010 8:30 AM

    Raphael_Lemaire wrote:
    Yes it works this way.
    I kind of hoped that i could use a jax-ws api to shorten the code.well, how exactly do you get that string full of xml? (as a side note, you need to be careful turning xml into strings, the data can easily broken if you don't translate the bytes into characters correctly). if you use the jaxws api to make soap calls, then you don't really need to deal with the xml at all.
    Edited by: jtahlborn on May 26, 2010 7:38 AM

  • WebService SOAP response problems

    hey,
    I'm developing a WebService, using EJB's. I have a session bean, which has several methods. One of them returns, say, a class like follows:
    class TeamDTO implements Serializable {
    private String name;
    private Integer teamId;
    //getters and setters ..
    I have several such methods returning various, very similar, classes. Now the problem is, when I try to test my application in the Web Services Navigator the response NEVER contains all the fields I wish. Why is that? Example of a response:
    <SOAP-ENV:Envelope ...>
    <SOAP-ENV:Body>
      <rpl:getAllTeamsResponse  ... >
       <rpl:Response ...>
        <pns:TeamDTO>
         <pns:name>team0</pns:name>
        </pns:TeamDTO>
       </rpl:Response>
      </rpl:getAllTeamsResponse>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    But the TeamDTO class has apart from a name field an teamId field as well. What happened?! The same happens to other classes, but there's no rule about the missing column (first I thought it's the PK, like in the above example, but that's not the case).
    What am I doing wrong? Ah, the fields are definetely not null, since in the above case it's a PK.
    regards,
    Kornel

    Hey,
    thanks for your hint, but that's not the problem here - for the example I've posted above java.lang.Integer won't appear, and for another case java.lang.String (whereas in my example String appeared). I'm sure the problem is somewhere else.. What happens if the field is null, will the appropriate tag appear in the soap response?
    regards,
    Kornel

  • SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPT

    Hi there,
    I am trying to publish a file from SAP as web service using XI and SOAP Adapter.
    I am using ABAP proxy to get the data into XI.
    Designing and Configuration in XI has no problems because when i use File adapter the data is trasmitted to FTP server.
    But when I used SOAP Reciever adapter I am getting following error in RWB
    Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Error during parsing of SOAP header.
    <b>Scenario</b>: SAP ABAP Proxy -> XI -> WebService. Asynchronous.
    <b>SOAP</b> Receiver adaptor.
    <b>Target URL</b> http://<host>:<port number >/sap/xi/engine?type=entry&version=3.0&Sender.Service=SAPDC2653&Interface=urn:bzttest:00:hsa:test%5EOB_MI_BZT_TEST&QualityOfService=ExactlyOnce
    Do not use SOAP Envelop is checked.
    <b>SOAP Action</b> http://sap.com/xi/WebService/soap1.1
    What i am missing here? How should I solve this problem?
    Any help is appreciated,
    Thx,
    Yogi

    Say there's a bapi/rfc that you want to call on an R/3 backend (e.g. 4.6c).  On it's own, the R/3 system cannot expose the rfc/bapi as a web service, but XI can.  So in this case, the scenario would be:
    WS client -> XI -> R/3
    When XI "exposes" a web service, it is exposing a service for a receiving system (in the above example, the R/3 system).  XI itself does not provide or contain the service implementation.  When XI exposes a web service, it is always done via the <b>sender</b> soap adapter (i.e. if soap adapter is used).   Receiver soap adapter is used to call or consume an actual web service from an external application.
    Regards,
    Jin

  • SOAP Receiver Adapter problem (client certificate required)

    My Scenario is similar to described in https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/3721. [original link is broken] [original link is broken] [original link is broken] I have two PI servers running on one machine. I am trying to post message HTTPS with Client authentication via SOAP adapter from one PI system to SOAP adapter of other PI server. I have done the following configuration.
    PI Server AXD - (Client) - Receiver SOAP adapter
    PI Server AXQ - (Server) - Sender SOAP Adapter.
    Steps in AXD
    1. I have created a certificate of AXD in the service_ssl view of key storage.
    2. I have imported the AXQ public certificate in to AXD in the TrustedCAs of Key storage
    Steps in AXQ
    1. I have created a certificate of AXQ in the service_ssl view of key storage.
    2. I have imported the AXD public certificate in to AXQ in the TrustedCAs of Key storage.
    3. I have created a user in AXQ and assigned the certificate of AXD under usermangement in Security provider to this user.
    4. I have added the AXD certificate under Client Authentication tab with require client certificate option checked in the SSL Provider.
    5. I have assigned the user created in AXQ in the step above to the Sender Agreement.
    Now when I post message from AXD with Configure Client Authentication checked (Here I have selected the certificate of AXD and view as service_ssl) I am getting the following error.
    Exception caught by adapter framework: SOAP: response message contains an error XIServer/UNKNOWN/ADAPTER.JAVA_EXCEPTION - java.security.AccessControlException: client certificate required at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:884) at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl0_3
    Any pointer to solve this problem is highly appreciated.
    Thanks
    Abinash

    Hi Hemant,
    I have couple of questions. Why do we need to import certificate for SOAP WS-Security and from where I can get it?
    As far as my scenario goes I am not using message level security.
    Secondly what do you mean by TRUSTED/WebServiceSecurity? I don't see any such view inside the Key Storage.  I can see a view named just WebServiceSecuity though.
    Also I don't have a decentralized adapter installation rather I have two separate PI instances having their own central adapter engine.
    Abinash

  • SOAP receiver exception problem

    Hi XI expert,
    I am using scenario as following:
    ABAP proxy -> xi -> soap receiver -> webservice
    in sxmb_moni, the message runs ok. but in RWB, there are some error in CC monitor.
    2007-07-07 11:33:54 Success SOAP: continuing to response message e305dd90-2c3a-11dc-95af-0015c5f7cd3b
    2007-07-07 11:33:54 Error SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault:     Compilation Errors
    2007-07-07 11:33:54 Success SOAP: sending a delivery error ack ...
    2007-07-07 11:33:54 Success SOAP: sent a delivery error ack
    2007-07-07 11:33:54 Error MP: exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault:     Compilation Errors
    2007-07-07 11:33:54 Error Exception caught by adapter framework: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault:     Compilation Errors
    2007-07-07 11:33:54 Error Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault:     Compilation Errors.
    2007-07-07 11:33:54 Success The asynchronous message was successfully scheduled to be delivered at Sat Jul 07 11:38:54 CST 2007.
    2007-07-07 11:33:54 Success The message status set to WAIT.
    What is the problem? and how can I deal with to identify the problem?

    hi
    Go through this links
    Check out these threads..
    RFC -> XI -> External web service
    How to resolve this RFC_adapter_sender to SOAP_adapter_receiver Exception?
    Why getting "DeliveryExcetion" in SOAP->XI->RFC scenario?
    You may refer these fallowing weblogs
    /people/riyaz.sayyad/blog/2006/05/07/consuming-xi-web-services-using-web-dynpro-150-part-i
    /people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi
    Thanks & Regards
    Sridhar.Bommireddy

  • Oracle ESB 10g : Blank namespace in the SOAP Response from DB adapter

    Hi All,
    I am currently working on a ESB project to route input XML file as a parameter to a DB Function.
    This Function has a input parameter of type XMLTYPE and returns VARCHAR2 values.
    I have configured the DB Adapter to invoke this function and return the result as a SOAP response.
    The WSDL of DB adapter contains XML_DATA as input and XMLMAIN as the output result.
    The ESB project works fine as expected. But in the result from DB adapter contains a blank namespace [xmlns=""] for the XMLMAIN element .
    I hereby attach the output XML.
    Please help how to remove this blank namespace from the output.
    We are using SOA Suite 10g 10.1.3.5
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/XXWEB/XMLMISCRCPTINSERTPKG/XMLMAIN/">
    <OutputParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <XMLMAIN xmlns="">100</XMLMAIN>
    </OutputParameters>
    </env:Body>
    </env:Envelope>
    Thanks and Regards,
    Justin Michael Raj

    well..the problem is..the db adapter has it's own transaction..so the transactions fails or not.
    you're just not capable of checking if the transaction went ok...and return 'process completed ok' or when the transaction failed for some reason return 'the process aborted'.
    So you just need some extra steps for it to be able to return some response-message

  • How to deal with complex SOAP responses when calling web services ???

    Hi all,
    I have an issue when calling a web service that returns a complex
    SOAP response message. With simple responses (e. g. array of strings) it
    worked.
    I created the PDF as an Interactive form with Livecycle Designer 8.2.
    The Javascript looks like this:
    var cURL = "http://blabla";
    var cTestString = "too";
    SOAP.wireDump=true;
    var response = SOAP.request(
         cURL: cURL,
         oRequest: {
              "http://blabla.com/:complete" : {
              arg0: cTestString
              cAction: "http://bla.com:50000/"
    var resp = response["http://blabla.com:serviceResponse"];
    console.println("lenght:"+resp.length);
    var myns = "http://blabla.com/namespace";
    for (var nItem in resp.return)
      console.println("" + nItem + " " + resp.return[nItem] );
         for (var ConceptView in resp.return[nItem])
           console.println("  "+resp.return[nItem].length);
           console.println("  "+ConceptView+" "+resp.return[nItem][ConceptView] );
           if (ConceptView == myns + ":Response")
              for (var item2 in resp.return[nItem][ConceptView]){
                  console.println("    "+item2+" "+resp.return[nItem][ConceptView][item2] );
    I call the service and when I realized that I do not find out the type of the object returned, I used the nested for-in-loops to iterate through it. But it seems that there is just one item in the Javascript object returned, although the SOAP message clearly shows that there are more than one item.
    Can you help me?
    One key problem when analyzing this issue is that I do not know at all
    the Javascript type of response. We suspected it might be an array, but it is not
    because the method .length returns "undefined". It would already be
    helpful to know at least the type of this object and to know callable
    methods and so on ...
    Best regards
    Christoph
    P.S. As mentioned I used Livecycle Designer 8.2 and displayed and
    debugged the document using Acrobat 9.

    Christoph,
    Firstly LiveCycle Designer 8.2 is still not supported to develop forms as per my knowledge. The latest version compatible for SAP Interactive Forms is ALD 8.0.
    There is a difference between Acrobat based forms and LiveCycle forms and based on your coding it looks to me  that you are trying to create a LiveCycle based form with coding of Acrobat which is not supported in LiveCycle Desginer, which is why you may be getting the error.
    I hope that does not confuse you, so may check this [link|http://www.acrobatusers.com/articles/2006/08/designer_or_forms/index.php] for some clear information on what point I was trying to make.
    Chintan

  • Soap response Error when processing XML CF.

    Hello,
    I have problems with soap response and wondered if you could give some advice.
    Every time I send my message via soap I get the following error:
    com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Error when processing XML CF.
    Is it possible that the communication is aborted and  my response message mapping is never started?
    (Additional info: I tried to create an integration process and am not able to evaluate the response.)
    Thanks a lot for your help.
    Regards,
    Julia

    hi,
    do you see any more error details in :
    http://xiserver:port/MessagingSystem/monitor
    did you check logs in visual admin ?
    >>>>Is it possible that the communication is aborted and my response message mapping is never started?
    yes - if the response is not ok the mapping may not be started
    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>

  • SOAP Response with WS-Addressing elements

    Hi All,
       I have an issue with the response message of SOAP - PI - RFC Sync scenario.
    In the request of the SOAP message, we receive following header(WS-Addressing) Elements in the SOAP Header part of the envelope.
    <wsa:Action wsu:Id="wssecurity_signature_id_281" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            http://partnername/interfacedetails
    </wsa:Action>
    <wsa:MessageID wsu:Id="wssecurity_signature_id_285" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    uuid:463BF10F-0126-4000-E000-604DAC152914
    </wsa:MessageID>
    <wsa:RelatesTo wsu:Id="wssecurity_signature_id_283" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    urn:uuid:02875597AE9A49ABAB1229340545618
    </wsa:RelatesTo>
    Now the issue is the, our interface partner(who actually sends the SOAP Request), wants SOAP response containing the above WS-Addressing elements.
    Is it possible with SAP PI?. Can anybody help me with this.
    By the way, our interface( SOAP-PI-RFC Sync ) working fine. We just need these elements inside SOAP Response.
    Thanks in advance.
    Kind Regards,
    Prasad.

    Hi Prasad,
    I am not sure if the problem is solved.
    I guess you are talking about a scenario in which a non-SAP consumer sends a request to SAP ABAP provider. The consumer requests the enabling of WS-Addressing. The answer nothing is required to configure the ABAP provider, which will send back a SOAP response either with WS-A or without depending if WS-A is sent by the consumer or not. That might be the case that you can see these headers with the SXMB_MONI.
    Hope this helps.
    Regards,
    Wei

  • Soap response with envelope

    Hi
    My PI server is able to make a soap call to the SFDC ( webservice ) ...however the response that is received within PI
    has a SOAP envelope...and hence the response mapping is going in error....because the source data type in response mapping doesnot match with the soap response ( with envelope )
      <?xml version="1.0" encoding="UTF-8" ?>
    - <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:enterprise.soap.sforce.com">
    - <soapenv:Body>
    - <upsertResponse>
    - <result>
      <created>false</created>
      <id>a0UT0000004aeaMMAQ</id>
      <success>true</success>
      </result>
      </upsertResponse>
      </soapenv:Body>
      </soapenv:Envelope>
    how do i handle this

    Hi,
    I think there is an option while configuration of SOAP adapter, where you can define, not to keep SOAP envelop. Please check the option Conversion Parameters\Do Not Use SOAP Envelope and set it as per your requirement. That might solve the problem. Here is the link which can be helpful
    http://help.sap.com/saphelp_nw04/helpdata/en/29/5bd93f130f9215e10000000a155106/content.htm
    Alternatively you need a java mapping or XSLT mapping to remove the envelop.
    Here is the java mapping code to remove SOAP envelop
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Map;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationException;
    public class RemoveSoapEnvelop implements StreamTransformation{
    public void execute(InputStream in, OutputStream out)
    throws StreamTransformationException {
    try
         DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
         DocumentBuilder builderel=factory.newDocumentBuilder();
         /*input document in form of XML*/
         Document docIn=builderel.parse(in);
         /*document after parsing*/
         Document docOut=builderel.newDocument();
         TransformerFactory tf=TransformerFactory.newInstance();
         Transformer transform=tf.newTransformer();
         Element root;
         Node p;
         NodeList l;
         int mm,n1;
         //if you need to include namespace use next two lines
         //root=docOut.createElement("ns0:upsertResponse");
         //root.setAttribute("xmlns:ns0","http://connectsystems.be/MAINFR/AccDocument");
         root=docOut.createElement("upsertResponse");
         p=docIn.getElementsByTagName("upsertResponse").item(0);
         l=p.getChildNodes();
         n1=l.getLength();
         for(mm=0;mm<n1;++mm)
              Node temp=docOut.importNode(l.item(mm),true);
              root.appendChild(temp);
         docOut.appendChild(root);
         transform.transform(new DOMSource(docOut), new StreamResult(out));
    catch(Exception e)
         e.printStackTrace();
    public void setParameter(Map arg0) {
    public static void main(String[] args) {
    try{
         RemoveSoapEnvelop genFormat=new RemoveSoapEnvelop();
         FileInputStream in=new FileInputStream("C:\\Apps\\my folder\\sdn\\sd2.xml");
         FileOutputStream out=new FileOutputStream("C:\\Apps\\my folder\\sdn\\removedEnvelop.xml");
         genFormat.execute(in,out);
    catch(Exception e)
    e.printStackTrace();
    input xml file sd2.xml
      <?xml version="1.0" encoding="UTF-8" ?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:enterprise.soap.sforce.com">
    <soapenv:Body>
    <upsertResponse>
    <result>
      <created>false</created>
      <id>a0UT0000004aeaMMAQ</id>
      <success>true</success>
      </result>
      </upsertResponse>
      </soapenv:Body>
      </soapenv:Envelope>
    Here is the output xml removedEnvelop.xml
      <?xml version="1.0" encoding="UTF-8" ?>
    <upsertResponse>
    <result>
      <created>false</created>
      <id>a0UT0000004aeaMMAQ</id>
      <success>true</success>
      </result>
      </upsertResponse>
    Helpful articles on java mapping for PI 7.1
    http://wiki.sdn.sap.com/wiki/display/XI/SampleJAVAMappingcodeusingPI7.1+API
    You can also try following XSLT mapping to get the same output as java mapping
    <xsl:stylesheet version="1.0"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    exclude-result-prefixes="SOAP-ENV">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
    <xsl:template match="/">
    <xsl:for-each select="SOAP-ENV:Envelope/SOAP-ENV:Body">     
    <upsertResponse>
    <result>
         <xsl:variable name="var" select="normalize-space(.)"></xsl:variable>
         <xsl:variable name="tokenizedSample" select="tokenize($var,' ')"/>
        <created><xsl:value-of select="$tokenizedSample[1]"/></created>
        <id><xsl:value-of select="$tokenizedSample[2]"/></id>
        <success><xsl:value-of select="$tokenizedSample[3]"/></success>
    </result>
    </upsertResponse>
    </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>
    Other than these please refer to following links for further examples on the topic
    Remove SOAP-ENV tags from xml RECEIVER RESPONSE payload (XSL needed?)
    Remove SOAP Envelop using XSLT  mapping.
    Hope this helps your cause.
    regards
    Anupam

  • SOAP Response not return when exception is thrown

    Hi,
    Wonder if anyone had encountered the same issue as me with SOAP Response.
    Adobe LiveCycle ES2 (v9.0.0.2)
    I had a process which is triggered using SOAP Endpoint.
    Whenever there is exception in the process the SOAP Response will have an error, instead of returning the default SOAP Fault with the exception stack trace. Nothing is returned.
    I was testing using soapUI when I encountered this issue, to widen the test I used the 'Service Operation - Invoke Web Service'. An error occurred when using the build in test function.
    'Empty content of web service response was found due to unknown reason'
    This issue is definely not happening in the previous version LC v8.2.
    Feel weird that not one reported about this issue or there is something wrong with my installation/configuration?
    Ryan

    Hi,
    Even we encountered similar issue.
    Please let us know if there is a fix/work around for this problem.
    Regards,
    Srikanth

  • Presence of multiref tag in soap response message

    We are having a problem when we try to call a web service in PI. The web services called is provided by an Axis server.
    We tried to use the plain HTTP protocol in the definition of the communication channel as shown here:
    Adapter type: SOAP
    Transport protocol: HTTP
    Message protocol: SOAP 1.1
    Adapter engine: Central Adapter Engine
    We got the followong error response in SXMB_MONI:
    The payload shown in SXNB_MONI is:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!-- XML Validation Inbound Channel Response -->
    <ns1:cedstr_obt_cle_elem_v2_Response xmlns:ns1='urn:CEDSTR' soapenv:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
    <tab_cle soapenc:arrayType='ns1:cedstr_cle_elem_v1[3]' xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/' xsi:type='soapenc:Array'>
    <item href='#id0'/>
    <item href='#id1'/>
    <item href='#id2'/>
    </tab_cle><nb_cle xsi:type='xsd:int'>3</nb_cle><stat_elem href='#id3'/>
    <cdr href='#id4'/>
    </ns1:cedstr_obt_cle_elem_v2_Response>
    The expected payload is:
      <?xml version="1.0" encoding="UTF-8" ?>
    - <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    - <soapenv:Body>
    - <ns1:cedstr_obt_cle_elem_v2_Response soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:CEDSTR">
    - <tab_cle xsi:type="soapenc:Array" soapenc:arrayType="ns1:cedstr_cle_elem_v1[3]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
      <item href="#id0" />
      <item href="#id1" />
      <item href="#id2" />
      </tab_cle>
      <nb_cle xsi:type="xsd:int">3</nb_cle>
      <stat_elem href="#id3" />
      <cdr href="#id4" />
      </ns1:cedstr_obt_cle_elem_v2_Response>
    - <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:cedstr_cle_elem_v1" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:CEDSTR">
      <id_structure_det xsi:type="xsd:int">118406</id_structure_det>
      <ordinal xsi:type="xsd:int">2648545</ordinal>
      <appareil xsi:type="xsd:string">C3D1E</appareil>
      <type_cable xsi:type="xsd:string">H</type_cable>
      </multiRef>
    - <multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:cedstr_cle_elem_v1" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns3="urn:CEDSTR">
      <id_structure_det xsi:type="xsd:int">984806</id_structure_det>
      <ordinal xsi:type="xsd:int">2723425</ordinal>
      <appareil xsi:type="xsd:string">O5C3X</appareil>
      <type_cable xsi:type="xsd:string">H</type_cable>
      </multiRef>
    - <multiRef id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns4:cedstr_cle_elem_v1" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns4="urn:CEDSTR">
      <id_structure_det xsi:type="xsd:int">1163686</id_structure_det>
      <ordinal xsi:type="xsd:int">3144641</ordinal>
      <appareil xsi:type="xsd:string">Y0A6B</appareil>
      <type_cable xsi:type="xsd:string">H</type_cable>
      </multiRef>
    - <multiRef id="id3" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns5:cedstr_stat_elem_v1" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns5="urn:CEDSTR">
      <tension xsi:type="xsd:string">MT</tension>
      <nb_concess xsi:type="xsd:int">0</nb_concess>
      <nb_restr xsi:type="xsd:int">0</nb_restr>
      <localisation xsi:type="xsd:string">DEVILLERS EST DE BEAUREGARD</localisation>
      <remarque xsi:type="xsd:string" />
      </multiRef>
    - <multiRef id="id4" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns6:utlgen_cdr" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns6="urn:CEDSTR">
      <succes xsi:type="xsd:int">1</succes>
      <code xsi:type="xsd:int">0</code>
      <message xsi:type="xsd:string" />
      </multiRef>
      </soapenv:Body>
      </soapenv:Envelope>
      </ns1:cedptr_obt_cle_di_v1_HResponse>
    What I can see is that PI seems to ignore the multiref tag in the SOAP response message. Does anybody knows if there is an issue with the mutiref tag in PI ?
    Thanks for your help.

    The SOAP adapter does not support more than one body child.
    If a SOAP message with several body childs arrive, then only the first body child is considered, all other body childs are ignored.
    Regards
    Stefan

Maybe you are looking for