SOAP response to file

Hello,
i am working on scenario as given below.
JDBC to SOAP synchronous.
So once i got the response i need to save as file (XML format).
please let me know the stpes to capture the SOAP response payload from SXMB_MONI and save as XML file.
Thanks in advance...SARAN

Hi Saran,
Follow the below steps:
1. Goto the T-code SXMB_MONI.
2. Select the Interface Namespace and time
3. Press F8 to execute.
4. Select the Message.
5. In the Left Navigation Bar, you would be able to find Response, under that click on SOAP Header.
6. Right on "Main" and select the option to download.
7. Save the file as you would like.
Thanks,

Similar Messages

  • Unable to write SOAP response to a file

    Hi,
      I am trying to capture SOAP response into a file using the method mentioned in the below given wiki but running into errors.
    File gets read but it doesn't get deleted and it gets processed infinitely without creating any monitoring messages.
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/xi/using%252brequest%252bresponse%252bbean%252bmodule%252bin%252bfile%252badapter
    Following is the trace from defaulttrace:
    #1.5 #005056A33969002E00003735000014A41040C0723D32A941#1236364790565#
    com.sap.engine.services.ts##com.sap.engine.services.ts#J2EE_GUEST#168484##
    test008_ZP0_117114750##672e8d50052011deafc2005056a33969#XI File2XI[CC_NTLM/BE_FILE_LOCAL/]_400304##0#0#Error#1#/System/Server#Java#ts_0021##Thread is not associated with any transaction context.##
    #1.5 #005056A33969002E00003737000014A41040C0723D32A941#1236364790565#
    com.sap.engine.services.ts##com.sap.engine.services.ts#J2EE_GUEST#168484##test008_ZP0_11711
    4750##672e8d50052011deafc2005056a33969#XI File2XI[CC_NTLM/BE_FILE_LOCAL/]_400304##0#0#Error#1#/System/Audit#Java###Exception #1#com.sap.engine.services.ts.transaction.TxDemarcationException: Thread is not associated with any transaction context.
         at com.sap.engine.services.ts.transaction.TxManagerImpl.setRollbackOnly(TxManagerImpl.java:754)
         at com.sap.transaction.TxManager.setRollbackOnly(TxManager.java:382)
         at com.sap.aii.af.service.util.transaction.impl.SAPTxManagerImpl.rollback(SAPTxManagerImpl.java:109)
         at com.sap.aii.adapter.file.File2XI.processFileList(File2XI.java:1748)
         at com.sap.aii.adapter.file.File2XI.invoke(File2XI.java:615)
         at com.sap.aii.af.lib.scheduler.JobBroker$Worker.run(JobBroker.java:463)
         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:152)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:247)
    Caused by: com.sap.engine.services.ts.exceptions.BaseIllegalStateException: Thread is not associated with any transaction context.
         at com.sap.engine.services.ts.jta.impl.TransactionManagerImpl.setRollbackOnly(TransactionManagerImpl.java:475)
         at com.sap.engine.services.ts.transaction.TxManagerImpl.setRollbackOnly(TxManagerImpl.java:751)
         ... 9 more
    Am not sure if this is the right approach. One other way mentioned some where else is to use the File Handler in Axis adapter but thats not working either.
    Any help is appreciated!!
    Thanks
    Kiran

    Hi!
    A part from the abov sugestions make sure even though u checked previously..
    1. Check whether your SOAP URL s correct or not which you are giving in the receiver SOAP adapter
    2. Also check you are giving the SOAP action in the receiver SOAP adatper correctly or not.
    3. Finally check the SOAP service is activei or not in SAP>BC>XI-->SOAP in ABAP stack
    4. Since FIle is only for ASYN comm and while using FILE for  sync interface you need to pass module paramters in the Sender File CC
    please go thorugh the below link and check all those parameters once again whcih contains detaled screen shots.....Ok
    [https://www.sdn.sap.com/irj/scn/wiki?path=/display/xi/file-rfc-file(Without+BPM)]
    Regarsd::
    Amar Srinivas Eli

  • How to attach files in soap response?

    IS there any way to attach a file in soap response? how to do that??:|

    Probably MTOM is what you need:
    http://edocs.bea.com/wls/docs100/webserv/jws.html#mtom
    But this is apparently not doable with ALSB (it would be supported just with regular web services):
    http://forums.bea.com/thread.jspa?threadID=300002302
    Note the file naming would need to be done by the SOAP client:
    http://www.jroller.com/gmazza/date/20071102 (Look at Steps #6 and #11 and Note # 7)
    HTH,
    Glen

  • SOAP  Request - BPM (JDBCs + Mappings + File) - SOAP Response

    Hi there,
    my scenario:
    -soap request to xi
    -bpm that do some tasks first with the jdbc-adapter and then with the file-adpater
    -soap response (succ/fault) back to the client
    do i need a s/a bridge to activate the bpm. i can't find any guideline.
    thx
    snyder

    Hi,
    You can go thro the following blogs for Sync/Asyn bridge.
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] [original link is broken]
    /people/sriram.vasudevan3/blog/2005/01/11/demonstrating-use-of-synchronous-asynchronous-bridge-to-integrate-synchronous-and-asynchronous-systems-using-ccbpm-in-sap-xi
    /people/ravikumar.allampallam/blog/2005/02/17/bridging-the-sync-async-bridge-with-fork-xi
    Regards,
    P.Venkat

  • 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

  • BPEL process to create a PDF and send it as attachment in SOAP response

    We have a requirement to have a webservice created using BPEL, which can receive input from a client and create a PDF using the input and send the PDF as attachment in the SOAP response.
    We have found the below link in Oracle docs and our basic understanding on the functionality given is that the MIMEService is being used to read a SOAP attachment from some other service and send it as an attachment in the SOAP response to the requester. As explained above, this doesn't completely satisfy our requirement.
    http://docs.oracle.com/cd/E11036_01/integrate.1013/b28981/manipdoc.htm#BABCJIAH
    Please suggest if there is any other approach that suites our requirement.
    Thanks.

    Hi,
    I have a Weblogic webservice which returns me a PDF attachment as resposne ( here I have MIME related stuff).I need to get attachment as bpel response.
    I have created a BPEL process to invoke the weblogic webservice. I have explictly added the MIME part in bpel.wsdl same as weblogic webservice wsdl.
    I tried to assign the response variable( of type base64binary) of bpel.wsdl and my webservice .wsdl . I am getting some error with no attachment.
    Below is my xsd used in BPEL.wsdl*
    <?xml version="1.0" encoding="UTF-8"?>
    <schema attributeFormDefault="unqualified"
         elementFormDefault="qualified"
         targetNamespace="http://xmlns.oracle.com/MIMEApp/test/BPELProcess1"
         xmlns="http://www.w3.org/2001/XMLSchema">
         <complexType name="process">
                   <sequence>
                        <element name="input" type="string"/>
                   </sequence>
         </complexType>
         <complexType name="processResponse">
                   <sequence>
                        <element name="result" type="string"/>
                   </sequence>
         </complexType>
    <complexType name="GetAttachmentPDF">
    <sequence>
    <element minOccurs="0" name="Pdf" nillable="false" type="base64Binary"/>
    </sequence>
    </complexType>
    </schema>
    Below is my BPEL.wsdl*
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions name="BPELProcess1"
    targetNamespace="http://xmlns.oracle.com/MIMEApp/test/BPELProcess1"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:client="http://xmlns.oracle.com/MIMEApp/test/BPELProcess1"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/">
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         TYPE DEFINITION - List of services participating in this BPEL process
         The default output of the BPEL designer uses strings as input and
         output to the BPEL Process. But you can define or import any XML
         Schema type and use them as part of the message types.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <wsdl:types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/MIMEApp/test/BPELProcess1"
    schemaLocation="xsd/BPELProcess1.xsd"/>
    </schema>
    </wsdl:types>
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         MESSAGE TYPE DEFINITION - Definition of the message types used as
         part of the port type defintions
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <wsdl:message name="BPELProcess1RequestMessage">
    <wsdl:part name="payload" type="client:process"/>
    </wsdl:message>
    <wsdl:message name="BPELProcess1ResponseMessage">
    <wsdl:part name="payload" type="client:processResponse"/>
    <wsdl:part name="attachment" type="client:GetAttachmentPDF"/>
    </wsdl:message>
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PORT TYPE DEFINITION - A port type groups a set of operations into
         a logical service unit.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!-- portType implemented by the BPELProcess1 BPEL process -->
    <wsdl:portType name="BPELProcess1">
    <wsdl:operation name="process">
    <wsdl:input message="client:BPELProcess1RequestMessage"/>
    <wsdl:output message="client:BPELProcess1ResponseMessage"/>
    </wsdl:operation>
    </wsdl:portType>
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PARTNER LINK TYPE DEFINITION
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <plnk:partnerLinkType name="BPELProcess1">
    <plnk:role name="BPELProcess1Provider">
    <plnk:portType name="client:BPELProcess1"/>
    </plnk:role>
    </plnk:partnerLinkType>
    <wsdl:binding name="BPELProcess1SOAP11Binding" type="client:BPELProcess1">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="process">
    <soap:operation style="rpc"
    soapAction="http://xmlns.oracle.com/MIMEApp/test/BPELProcess1/process"/>
    <wsdl:input>
    <soap:body use="literal"
    namespace="http://xmlns.oracle.com/MIMEApp/test/BPELProcess1"/>
    </wsdl:input>
    <wsdl:output>
    <mime:multipartRelated>
    <mime:part>
    <soap:body use="literal"
    namespace="http://xmlns.oracle.com/MIMEApp/test/BPELProcess1"/>
    </mime:part>
    <mime:part>
    <mime:content part="attachment" type="application/pdf"/>
    </mime:part>
    </mime:multipartRelated>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    </wsdl:definitions>
    Below is my WL WS WSDL*
    <?xml version="1.0" encoding="UTF-8"?>
    <WL5G3N0:definitions
    name="NewWSDLFile"
    targetNamespace="http://www.example.org/NewWSDLFile/"
    xmlns:WL5G3N5="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:WL5G3N4="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:WL5G3N3="http://www.example.org/NewWSDLFile/"
    xmlns:WL5G3N2="java:com.rogers.service"
    xmlns:WL5G3N0="http://schemas.xmlsoap.org/wsdl/"
    xmlns:WL5G3N1="http://www.w3.org/2001/XMLSchema"
    >
    <WL5G3N0:types>
    <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="java:com.rogers.service"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="java:com.rogers.service"
    xmlns:s0="http://schemas.xmlsoap.org/wsdl/" xmlns:s1="http://www.w3.org/2001/XMLSchema"
    xmlns:s2="java:com.rogers.service" xmlns:s3="http://www.example.org/NewWSDLFile/"
    xmlns:s4="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s5="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.example.org/NewWSDLFile/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:complexType name="GetAttachmentPDF">
    <xsd:sequence>
    <xsd:element minOccurs="0" name="Pdf" nillable="false" type="xs:base64Binary"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="GetAttachmentResult">
    <xsd:sequence>
    <xsd:element minOccurs="1" name="Message" nillable="true" type="xs:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>
    </WL5G3N0:types>
    <WL5G3N0:message name="NewOperationRequest">
    <WL5G3N0:part name="GetAttachment" type="WL5G3N1:string"/>
    </WL5G3N0:message>
    <WL5G3N0:message name="NewOperationResponse">
    <WL5G3N0:part name="NewOperationResponse" type="WL5G3N2:GetAttachmentResult"/>
    <WL5G3N0:part name="attachment" type="WL5G3N2:GetAttachmentPDF"/>
    </WL5G3N0:message>
    <WL5G3N0:portType name="NewWSDLFile">
    <WL5G3N0:operation name="NewOperation">
    <WL5G3N0:input message="WL5G3N3:NewOperationRequest"/>
    <WL5G3N0:output message="WL5G3N3:NewOperationResponse"/>
    </WL5G3N0:operation>
    </WL5G3N0:portType>
    <WL5G3N0:binding name="NewWSDLFileSOAP" type="WL5G3N3:NewWSDLFile">
    <WL5G3N4:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <WL5G3N0:operation name="NewOperation">
    <WL5G3N4:operation soapAction="http://www.example.org/NewWSDLFile/NewOperation"/>
    <WL5G3N0:input>
    <WL5G3N4:body use="literal" namespace="http://www.example.org/NewWSDLFile/"/>
    </WL5G3N0:input>
    <WL5G3N0:output>
    <WL5G3N5:multipartRelated>
    <WL5G3N5:part>
    <WL5G3N4:body use="literal" namespace="http://www.example.org/NewWSDLFile/"/>
    </WL5G3N5:part>
    <WL5G3N5:part>
    <WL5G3N5:content part="attachment" type="application/pdf"/>
    </WL5G3N5:part>
    </WL5G3N5:multipartRelated>
    </WL5G3N0:output>
    </WL5G3N0:operation>
    </WL5G3N0:binding>
    <WL5G3N0:service name="NewWSDLFile">
    <WL5G3N0:port name="NewWSDLFileSOAP" binding="WL5G3N3:NewWSDLFileSOAP">
    <WL5G3N4:address location="http://localhost:7001/something/NewWSDLFileImpl"/>
    </WL5G3N0:port>
    </WL5G3N0:service>
    </WL5G3N0:definitions>
    I refered the below link:
    http://docs.oracle.com/cd/B14099_19/integrate.1012/b14448/manipdoc.htm.
    4.16.1.1 WSDL File Contents
    They are using ra:writeBinaryToFile() and ora:ReadBinaryFromFile(). I couldnt get a proper sample to understand the use of these functions.
    Please advise.
    Regards
    Ipsita

  • 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

  • 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

  • Missing tag in SOAP Response object

    Currently running WebLogic 8.1 SP2 (legacy system, unable to upgrade to newer versions).
    Looking at a SOAP Response from a Web Service call, it's notable that there are some missing tags in the response. When the same call is made through an RMI invocation, the data is there, so it appears that it's being set correctly. The obvious answer is that it's an XML serialization problem, but there are no errors in any log files and the Codec classes for a working class and non-working class look identical.
    Let me explain better
    We have essentially:
    Class foo {
    public int getID();
    public void setID(int);
    Class bar1 extends foo {
    //other stuff
    Class bar2 extends foo {
    //other stuff
    The Schema defines the ID field as minOccurs="1" (the default).
    The response coming from the server will look something like this:
    <foo>
    <bar1>
    <ID>TheID</ID>
    ...other stuff...
    </bar1>
    </foo>
    However, if the returned object is of the other type...
    <foo>
    <bar2>
    ...other stuff, but no ID...
    </bar2>
    </foo>
    The classes and service are being generated from a WSDL and XSD files, searching through the value and codec classes shows no fundamental difference between the implementation of the two subclasses, yet one shows the ID, and the other doesn't.
    Anyone have any idea where to look to start narrowing down the problem? This has us completely baffled.

    I guess I'll answer my own question since I've since been able to solve it in the hopes that it will someday help someone else.
    Short answer: There is a bug in WebLogic 8.1 SP2 which generates the isPropertySet(int index) method in the Codecs incorrectly for certain subclasses.
    Using the foo example from the original question
    class foo;
    class bar extends foo;
    class dot extends foo;
    If dot has additional properties, the Codec will be generated incorrectly. They should look like:
    <pre>
    protected boolean isPropertySet(Object my_obj, int idx) {
    if (idx < SUPERPROP_COUNT) return super.isPropertySet(my_obj,idx);
    idx -= SUPERPROP_COUNT;     
    Dot typed_obj = (Dot) my_obj;
    switch(idx) {
    case 0:
    return typed_obj._isSetAdditionalProperty();
    </pre>
    ...etc
    What it actually does look like is...
    <pre>
    protected boolean isPropertySet(Object my_obj, int idx) {
    Dot typed_obj = (Dot) my_obj;
    switch(idx) {
    case 0:
    return typed_obj._isSetAdditionalProperty();
    </pre>
    ...etc
    so attempting to get the eariler properties of the super class from an instance of the sub class returns erratic results depending on whether properties of the subclass were set.
    Anyway, this was fixed in SP3 or 4, and there was a patch available to fix it in SP2 as well. Good luck if anyone else happens to run into this problem.

  • How to set XML character encoding for a SOAP response?

    Hi,
    We're using Oracle J2EE web services,
    and are quite happy with them.
    However, it's a problem that we need to have
    characters outside the standard English alphabet
    in our service responses. So far, we have not been
    able to find a way to specify what encoding to use.
    Our version (9.0.3 release) produces SOAP-responses
    without any encoding specification in the XML header.
    Any ideas?

    Hello,
    If you are using the "Paper Layout", check the Reports's "Before Report Value" property:
    Before Report Value :
    <meta http-equiv="Content-Type" content="text/html; charset=&Encoding">
    If you are using the "Web Layout", take a look to the document :
    http://download-uk.oracle.com/docs/cd/B14099_17/bi.1012/b14048/pbr_nls.htm#i1006142
    18.3 Specifying a Character Set in a JSP or XML File
    Regards

  • Best way to capture a SOAP response into a different message interface

    Hi
    I have created a Synchronous File to SOAP scenario in which I need to map the SOAP response back to an RFC Function Module instead of the File Message Interface.
    Please can you let me know what the best method is to do this because I am not able to to use the RFC FM as the input message inside the synchronouse File Message Interface.
    Thank you,
    Brendon

    Hi,
    if u are using request response bean and response one way bean at sender file adapter please do the following .
    1. create the sender file adapter. and at module tab used the bean as follows.
    1. requestresponsebean
    2. call adapter
    3. responseonewaybean.
    and define the request and  response bean parameter in the value
    1. request --passThrough- true
    2. response--receiver channel -- channel name
    3. responce-- receiverService--Business service name.
    please do remember to configure one  receiver agreement using the rfc channel.
    regards,
    Navneet

  • Weblogic throwing "null SOAP element Exception" in multi-part SOAP response

    Hi All,
    I'm using weblogic 10. My application is a webservice client generated using '*clientgen*', which is running on weblogic, and
    is invoking a remotely hosted webservice ( Remotely hoseted webservice may not be running on weblogic).
    I've the wsdl file of remotely hosted webservice.
    Now the problem is with WSDL file (I suppose), have a look at this.
    *&lt;message name="m1"&gt;*
    *&lt;part name="body" element="tns:GetCompanyInfo"/&gt;*
    *&lt;/message&gt;*
    *&lt;message name="m2"&gt;*
    *&lt;part name="body" element="tns:GetCompanyInfoResult"/&gt;*
    *&lt;part name="docs" type="xsd:AnyComplexType"/&gt; ------&gt; assume all elements inside this complex type can be nil or minOccurs set to '0'*
    *&lt;part name="logo" type="xsd:AnyOtherComplexType"/&gt; ------&gt; assume all elements inside this complex type can be nil or minOccurs set to '0'*
    *&lt;/message&gt;*
    &lt;portType name="pt1"&gt;
    &lt;operation name="GetCompanyInfo"&gt;
    &lt;input message="m1"/&gt;
    *&lt;output message="m2"/&gt; -----&gt; multi part message.*
    &lt;/operation&gt;
    &lt;/portType&gt;
    Now here is sample message for the request(I've composed this message for this question):
    &lt;soap:Envelope&gt; MESSAGE1
    &lt;soap:header/&gt;
    &lt;soap:body&gt;
    &lt;tns:m2&gt;
    &lt;tns:GetCompanyInfoResult&gt;
    Blah Blah....
    &lt;/tns:GetCompanyInfoResult&gt;
    &lt;tns:docs&gt;
    Blah Blah....
    &lt;/tns:docs&gt; Assume no data for 'logo', so it's not returned. Since all its elements can be nillable.
    &lt;tns:m2&gt;
    &lt;/soap:body&gt;
    &lt;/soap:Envelope&gt;
    First of all, is this SOAP response is valid? I'm not sure about *'message' and 'parts' in SOAP*, but according to XML schema standards it's invalid.
    Because, according to *'message' m2, 'logo' is missing*, eventhough all it's elements are nillable in such case there should be *&lt;logo/&gt;* at the end.
    I mean valid message should be like below
    &lt;soap:Envelope&gt; '*MESSAGE2*'
    &lt;soap:header/&gt;
    &lt;soap:body&gt;
    &lt;tns:m2&gt;
    &lt;tns:GetCompanyInfoResult&gt;
    Blah Blah....
    &lt;/tns:GetCompanyInfoResult&gt;
    &lt;tns:docs&gt;
    Blah Blah....
    &lt;/tns:docs&gt;
    *&lt;tns:logo/&gt; ------------------&gt; here is the change compared to above message. empty element.*
    &lt;tns:m2&gt;
    &lt;/soap:body&gt;
    &lt;/soap:Envelope&gt;
    Now the concerns are :
    (1) Which is a valid response? Message1 or Message2
    (2) If message1 is valid then why is weblogic throwing an exception 'null SOAP element', I suppose this is due to missing 'logo' element.
    (To confirm this I've used tcpmonitor and found message1 as response but weblogic is still throwing 'null SOAP Element' exception,
    which confirms it needs 'logo' as well, I suppose &lt;logo/&gt; at least). Is there any workaround for this in weblogic for multi-part messages?
    (3) If message1 is invalid according to SOAP standards then You've answered my question. ---&gt; I need to talk to the webservice provider in this case.....
    Thanks in advance...

    Message 1 is not Basic Profile 1.1 compliant. It is specified by BP1.1 in section 4.4.1(http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html#Bindings_and_Parts) that when a wsdl:part element is defined using the type attribute, the serialization of that part in a message is equivalent to an implicit (XML Schema) qualification of a minOccurs attribute with the value "1", a maxOccurs attribute with the value "1" and a nillable attribute with the value "false".

  • Error when trying to read the SOAP Response

    Hai,
    iam trying to access the web service of DUBAI international Airport
    GetFlightSchedulebyDateRange at http://dca.gov.ae/WebServices/Flights
    This is my program
    package MyClient3;
    import java.io.FileOutputStream;
    import java.net.URL;
    import java.util.Iterator;
    import javax.xml.soap.MessageFactory;
    import javax.xml.soap.MimeHeaders;
    import javax.xml.soap.Name;
    import javax.xml.soap.SOAPBody;
    import javax.xml.soap.SOAPBodyElement;
    import javax.xml.soap.SOAPConnection;
    import javax.xml.soap.SOAPConnectionFactory;
    import javax.xml.soap.SOAPElement;
    import javax.xml.soap.SOAPEnvelope;
    import javax.xml.soap.SOAPFactory;
    import javax.xml.soap.SOAPFault;
    import javax.xml.soap.SOAPHeader;
    import javax.xml.soap.SOAPMessage;
    import javax.xml.soap.SOAPPart;
    public class Client3 {
    public static void main(String arg[]){
    try{
    MessageFactory factory = MessageFactory.newInstance();
    SOAPMessage message = factory.createMessage();
    SOAPPart soapPart = message.getSOAPPart();
    SOAPEnvelope envelope = soapPart.getEnvelope();
    SOAPHeader header = envelope.getHeader();
    SOAPBody body = envelope.getBody();
    // header.detachNode();
    SOAPFactory soapFactory = SOAPFactory.newInstance();
    Name bodyName = soapFactory.createName("GetFlightSchedulebyDateRange",null,"http://dca.gov.ae/WebServices/Flights");
    SOAPBodyElement bodyElement = body.addBodyElement(bodyName);
    Name name = soapFactory.createName("Todate");
    SOAPElement symbol = bodyElement.addChildElement(name);
    //symbol.addTextNode("2007-05-25T00:00:00.0000000+04:00");
    symbol.addTextNode("2007-05-27");
    name = soapFactory.createName("Fromdate");
    symbol = bodyElement.addChildElement(name);
    //symbol.addTextNode("2007-05-25T00:00:00.0000000+04:00");
    symbol.addTextNode("2007-05-27");
    MimeHeaders hd = message.getMimeHeaders();
    hd.addHeader("SOAPAction", "http://dca.gov.ae/WebServices/Flights/GetFlightSchedulebyDateRange");
    SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
    SOAPConnection connection = soapConnectionFactory.createConnection();
    message.writeTo(System.out);
    System.out.println();
    System.out.println(soapPart.toString());
    String endpoint = "http://dubaiairport.com/dcaflightinfo/fis/flights.asmx?WSDL";
    URL url = new URL(endpoint);
    SOAPMessage response = connection.call(message, url);
    response.writeTo(System.out);
    SOAPPart part = response.getSOAPPart();
    SOAPEnvelope env = part.getEnvelope();
    connection.close();
    System.out.println("\n\nIterating through the response object to get the values:\n\n");
    // SOAPBody se = response.getSOAPBody();
    }catch(Exception e){System.out.println("+++++++++++++++++++++++++"+e);}
    i am getting the error
    ERROR: 'Character reference "&#x1B" is an invalid XML character.
    in the statement
    SOAPEnvelope env = part.getEnvelope();
    can some help me to solve this problem, iam using JAX-WS 2.0, and netbeans

    I got the solution, there was a Invalid char in SOAP response message, i stored the SOAP res msg to a file, parsed that file to remove the invalid char , ans used the soap msg from the file,
    it worked perfectly fo me

  • Wsdl - soap response...

    I am working on java ,using Eclipse wit wtp and Apache Axis. The soap request is sent, an xml file is parsed and I want to generate soap responses from the xml file.
    Now i can send a soap request, parse the xml, but the response am getting is not of soap format, its jus a simple data...
    For eg.. if the request is add no.s ( 5+ 7) i get the sum(12) or if i request for author of a book from i just get author's name.. 
    Instead i want it as a soap response... some thing like this for requesting the stock price...
    <?xml version="1.0"?>
    <soap:Envelope
    xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
    soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
      <soap:Body xmlns:m="http://www.example.org/stock">
        <m:GetStockPriceResponse>
          <m:Price>34.5</m:Price>
        </m:GetStockPriceResponse>
      </soap:Body>
    </soap:Envelope>
    How do i get the sopa response using the wsdl file that gets generated... ????
    Or is there another way of generating the soap responses.. ?
    Plz help me out...

    Hi,
    All that you want to do is trying to call a web service and get the response from it, you can use the WSDLs from any weather or lets say google. From XI you can call it and you would get response in SOAP format.
    If you want to create a web service, create a SOAP to RFC scenario in XI where RFC returns you some thing that you wanted in sync fashion. Now use the WSDL genrated from this scenario and import in XI for another scenario.. where it could be a HTTP to SOAP. Now you would get the response of RFC in SOAP format it self..
    VJ

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

Maybe you are looking for