WebServices-SOAP interoperability

Hello All,
I need to develop a Java-system (client-side) that communicates over WebServices/SOAP with SAP (server-side).
Therefore, I am looking for using either Apache-Axis of Metro-WebServices to access the SAP system.
Therefore, I would like to know if there is somewhere an interoperability matrix identifying the frameworks that could function as WebServices clients or with which frameworks others have been successful?
regards, Harrie

Hi,
Thanks for the answer.
While using Axis1 I had problems with the namespace that SAP generates for its generated WSDL.
Axis 2 I tried, but failed on the client interface somewhere (not a SAP interoperability issue).
In the end I took Apache CXF and that works for me now.
Harrie

Similar Messages

  • File(PDF as attachment)-- XI-- WebService(SOAP with attachment)

    Hi i have following Scenerio in my hand,
    File>XI>WebService(SOAP)
    Kindly help me in implementing the Following Scenerio;
    I need to attach PDF to File Adapter as PayLoad or give it to File Adapter as Attachment which in turn send this data to XI and then XI wud generate WebService having this PDF as attachment.
    Kindly Walk me thru all the steps during Configuration and design and do guide me how to test wether this scenerio works or not.
    Also tell me abt the WebService i need to use to test the Scenerio.
    Thanks.

    Hi Jeet,
    If you want your file adapter to read contents from a PDF file, check out the folloing blog,
    <a href="/people/sap.user72/blog/2005/07/31/xi-read-data-from-pdf-file-in-sender-adapter">Sender File Adapter with PDF</a>
    If you want your file adapter to generate its output into a PDF file, then check the following blog,
    <a href="/people/sap.user72/blog/2005/07/27/xi-generate-pdf-file-out-of-file-adapter">Receiver File Adapter With PDF</a>
    Sriram's blog on FILE to HTTP scenario might of be help to you too. It also deals with Syn / Async Bridge which can be ignored.
    <a href="/people/sriram.vasudevan3/blog/2005/01/11/demonstrating-use-of-synchronous-asynchronous-bridge-to-integrate-synchronous-and-asynchronous-systems-using-ccbpm-in-sap-xi">File to HTTP</a>
    Do let us know if you need any further help,
    regards,
    Bhavesh

  • R3 (rfc-sender) - XI - Webservice ( soap-receiver)

    Hi,
    I am getting below error whenever webservice(target system) is unavailable.
    HTTP 404 Not Found
    Then RFC got failed in R3, due to this error in XI
    R3 (rfc-sender) <-> XI <-> Webservice ( soap-receiver) Synch
    User will enter the request data in R3 and waiting for the response, but webservice is down(i.e not available)
    Request is reached to XI box and XI is trying to send data when webservice is down( i,e not available), RFC is waiting for the response from XI box.
    how we will handle this kind of situation,how should i give response back to RFC( because RFC sent the request and waiting for the response, XI could not send any response back as Webservce is down, Please advice me how should XI inform to the end user r R3 abt webservice.
    I am getting this error to my mail box as i have configured ALERTS. i do not want to change existing RFC.
    is there any chance to send response to R3 even webservice is down, please can any one suggest.
    Thanks,
    SIva
    Edited by: Siva Grandhi on Jun 18, 2008 1:12 PM

    Hi siva,
    check this blog on HTTP errors.
    /people/krishna.moorthyp/blog/2006/07/23/http-errors-in-xi
    May be the URL you have given in SOAP at receiver adapter is wrong.Check that once.
    Error: 404 Not Found
    Description: The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent. The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address. This status code is commonly used when the server does not wish to reveal exactly why the request has been refused, or when no other response is applicable.
    Possible Tips:- for HTTP_RESP_STATUS_CODE_NOT_OK 404
    u2022 404 is an HTTP response code that indicates that the resource in question couldn't be found. Usually this is due to an incorrect URL, so it is better to cross check all URLs. Check pipeline URL in the SLD in the business system of the Integration Server For this go to SLD->Business System-><yourIntegrtaion Server>->Pipeline URL: It should be like this http://<host>:<port>/sap/xi/engine?type=entry Where host is the host name of the Integration Server and port is the HTTP(8xxx) port. To verify this in Integration Server you can do like this. Go to SXMB_ADM->Integration Engine Configuration->Choose Edit from Menu -> Change Global Configuration Data to switch to change mode. Then select System Landscape - Load Configuration. (This is not required always)
    u2022 Check that the port really is the ICM HTTP Port and not the J2EE port i.e SMICM then menu GOTO --> SERVICES and check the port number for HTTP. It should be HTTP port
    u2022 If the error is Page cannot be displayed, cannot find server in https configurations Check and correct the SSL configuration for the ABAP and the J2EE side of the system
    u2022 If the error is because of integration server when using Proxy communications then check these. i.e SXMB_ADM->Integration Engine Configuration->Corresponding Integration Server enrty should be dest://<Http Integration server-Destination> Where < Http Integration server -Destination > is the RFC destination (SM59) of type HTTP connection (type H) to the Integration Server. In this case, host name, port, and path prefix are saved in the RFC destination.
    Thanks,
    Vijaya.

  • R3 (rfc-sender) - XI - Webservice ( soap-recever) Synch : error handlng

    R3 (rfc-sender) <-> XI <-> Webservice ( soap-receiver) Synch
    User will enter the request data in R3 and waiting for the response, but webservice is down(i.e not available)
    Request is reached to XI box and XI is trying to send data when webservice is down( i,e not available),  RFC is waiting for the response from XI box.
    how we will handle this kind of situation,how should i give response back to RFC( because RFC sent the request and waiting for the response,  XI could not send any response back as Webservce is down, Please advice me how should XI inform to the end user r R3 abt webservice down.
    Pleae help me out on this.
    Thanks,
    Dhanush.

    Hi,
    Normally, the Web service should provide a fault message back to XI and the RFC should also have an exception defined that will trigger a fault message mapping and that way the application error is sent back to R3.
    But if the web service does not provide u with a fault message then XI will trigger the System Error back to R3.
    The functionality of checking the DB status and propagating meaningful errors to XI as fault messages should lie with the web service.
    Thanks
    Vikranth

  • WebService SOAP vs J2EE

    Hi,
    late but hopefully not to late i do my first steps into the world of webservices.
    Since we use JDEV 9.0.4 in prodution i started with this version of JDEV.
    There it is possible to generate two kind of Webservices, soap and j2ee.
    In version 10.1.3 there is only one left.
    May someone could explain the reason to me please (and perhaps the differences)?
    Thanks and regards,
    Chris

    In 10.1.3 we use the standard J2EE way of working with Web Services (JAX-RPC) in older versions of JDeveloper we also supported an Oracle specific way - which was there before the industry standard appeared.

  • Webservices SOAP timestamp

    Hello,
    I want to add timestamp in my soap header. Here the soap request the client send to a weblogic server :
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <env:Header>
    <wsu:Timestamp xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" env:mustUnderstand="1">
    <wsu:Created Id="Created-QsSgxO+ypv7YlXXFneRJyYaV">2004-11-30T15:06:59.699Z</wsu:Created>
    <wsu:Expires Id="Expires-j5RwF22oKknUNU9rxGw7SD0X">2004-11-30T15:07:59.699Z</wsu:Expires>
    </wsu:Timestamp>
    <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext" env:mustUnderstand="1">
    <xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
    <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
    <dsig:KeyInfo xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
    <wsse:SecurityTokenReference>
    <wsse:Reference URI="#BinarySecurityToken-Y5irrFsxZzsTQD2N8uPQCVpA"/>
    </wsse:SecurityTokenReference>
    </dsig:KeyInfo>
    <xenc:CipherData>
    <xenc:CipherValue>TURdn/mDmqHr5JdBONNIfp1RTHQ24mUO6uZC0s0P578UoV4Vz8WQcJPxijwCGqdS78KbcmmriJ4IFQY6sGpmh40Pb3qnG2D/aop+IShHVJxMoIrIhFXOch10s8Ua1o4PWcftuRBQ5Mt3fC1gpDabD7G7HH6FZ1Y3fW4ac+gmw1A=</xenc:CipherValue>
    </xenc:CipherData>
    <xenc:ReferenceList>
    <xenc:DataReference URI="#EncryptedData-rVTo+Ci8USu+W9bLRwHwfHql"/>
    </xenc:ReferenceList>
    </xenc:EncryptedKey>
    <wsse:BinarySecurityToken xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" ValueType="wsse:X509v3" EncodingType="wsse:Base64Binary" wsu:Id="BinarySecurityToken-5KeK8EpZIGNaeZF8UPahXH/5">MIIB9DCCAV0CBEGnQ6UwDQYJKoZIhvcNAQEEBQAwQTELMAkGA1UEBhMCVVMxDDAKBgNVBAoTA0JFQTELMAkGA1UECxMCV1MxFzAVBgNVBAMTDmV4YW1wbGVzU2VydmVyMB4XDTA0MTEyNjE0NTQyOVoXDTA1MDIyNDE0NTQyOVowQTELMAkGA1UEBhMCVVMxDDAKBgNVBAoTA0JFQTELMAkGA1UECxMCV1MxFzAVBgNVBAMTDmV4YW1wbGVzU2VydmVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIYMBCiuwD/0unV/9EV7hsS3bHW92t72VeasRcLa3jZcvW9bobOYdND59Io6OmHo+XOcGkPRDYYu6RdJd82fFWS0DOUJgS18R20fwkho+mnL4KEyDbZ5EWH6dEKzD9/KzzVe9gM7D+WrOT74rNqGQKPywv8IDoxTUdZgk8JbJ5dQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAHthmctQuyzO6ttCu+8FtnTFOwbNp4QfSSetUvmvSBQ+U0a9nuVqkJzZvCQe/CSYPtE5KE4WJQLSre6obiYbcOiBL6r+j2JrUurh503GEiIZewh27afjNXkFRBgd8ArRmPVY8+igNDnQI8nxRCg8lmOBJvD/YE1Vi8z37DS8X9Q8</wsse:BinarySecurityToken>
    <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
    <dsig:SignedInfo>
    <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
    <dsig:Reference URI="#Expires-j5RwF22oKknUNU9rxGw7SD0X">
    <dsig:Transforms>
    <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </dsig:Transforms>
    <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <dsig:DigestValue>KHoEHJlJAHhr80i/uS8QQh4OVGQ=</dsig:DigestValue>
    </dsig:Reference>
    <dsig:Reference URI="#Created-QsSgxO+ypv7YlXXFneRJyYaV">
    <dsig:Transforms>
    <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </dsig:Transforms>
    <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <dsig:DigestValue>Vs5VKxtr799XTG1qthdDkbgI+uM=</dsig:DigestValue>
    </dsig:Reference>
    <dsig:Reference URI="#Body-hVSKcJoqcC06Y8dr919WE115">
    <dsig:Transforms>
    <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    </dsig:Transforms>
    <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <dsig:DigestValue>sLLiI0S7pDiXROtaOxK3CpIdJIs=</dsig:DigestValue>
    </dsig:Reference>
    </dsig:SignedInfo>
    <dsig:SignatureValue>PKE3zAheGY3nnWgQCH2zM9Wp44bFS7CJkmmFIhuqoipd8h3OXfVA9sFXPBIyWQaYAju1QcfHsTav1OXLnVLlUzPpWYzm0l9+iSE/uGUhPGguto77Jw/3PmHomknX8VCDXO6zoQr7Sq3we1xb2gtnngjeH9Iij+DMV2BOCLBDTbo=</dsig:SignatureValue>
    <dsig:KeyInfo>
    <wsse:SecurityTokenReference>
    <wsse:Reference URI="#BinarySecurityToken-5KeK8EpZIGNaeZF8UPahXH/5"/>
    </wsse:SecurityTokenReference>
    </dsig:KeyInfo>
    </dsig:Signature>
    <wsse:UsernameToken xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" wsu:Id="UsernameToken-HmnysPeW11dHfN+cOhnbIpv4">
    <wsse:Username>ivory</wsse:Username>
    <wsse:Password Type="wsse:PasswordText">itfloats</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    </env:Header>
    <env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" Id="Body-hVSKcJoqcC06Y8dr919WE115">
    <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Id="EncryptedData-rVTo+Ci8USu+W9bLRwHwfHql" Type="http://www.w3.org/2001/04/xmlenc#Element">
    <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
    <xenc:CipherData>
    <xenc:CipherValue>amj+gtdPWer8Gj/CIQlxowbvfb3/uInaF4tuEkdZbtovkf+oFi6Vjt1lE88YqpPITPjcT7jOlFSbqVmW4kDyWSB67vSHJjywyPQBUMSS/5KtTN9cSWR7I83dYyhLyefuzHXB3eZ9JiM2QDR8lv/vb0hxMMoT73D7uW9uk94yT4aCTtbrJdS5jiVcusRdq0p52jKFjMC7BepshtxaedMa03ab00Wfc+6VDBrBpM4Q1Ns1Jwmo+rHuCwzvtJ0NIzP55vujxZqw+f7Rwc+YLMmBKw==</xenc:CipherValue>
    </xenc:CipherData>
    </xenc:EncryptedData>
    </env:Body>
    </env:Envelope>
    But I,ve got an exception : java.rmi.RemoteException: SOAP Fault:javax.xml.rpc.soap.SOAPFaultException: Message includes expiry but clocks are not synchronized
    I don't find how to synchronized the clock.
    In the client code, i've put :
    System.setProperty("weblogic.webservice.security.clock.precision", "30000");
    System.setProperty("weblogic.webservice.security.clock.precision.lax", "true");
    System.setProperty("weblogic.webservice.security.clock.synchronized", "true");
    System.setProperty("weblogic.webservice.security.delay.max", "-1");
    System.setProperty("weblogic.webservice.security.timestamp.include", "true");
    System.setProperty("weblogic.webservice.security.timestamp.require", "true");
    System.setProperty("weblogic.webservice.security.validity", "60000");
    In the web-services.xml :
    <timestamp>
              <clock-synchronized>true</clock-synchronized>
              <clock-precision>1</clock-precision>
              <enforce-precision>false</enforce-precision>
              <require-signature-timestamp>true</require-signature-timestamp>
              <generate-signature-timestamp>true</generate-signature-timestamp>
              <inbound-expiry>60000</inbound-expiry>
              <!-- <outbound-expiry>60000</outbound-expiry>-->
         </timestamp>
    Someone have idea.
    Thank's

    Hi,
    Thanks for the answer.
    While using Axis1 I had problems with the namespace that SAP generates for its generated WSDL.
    Axis 2 I tried, but failed on the client interface somewhere (not a SAP interoperability issue).
    In the end I took Apache CXF and that works for me now.
    Harrie

  • Sending Acknowledgement back to webservice SOAP to File Scenario

    I need to receive information from a webservice to a file for which I have configured Sender SOAP Adapter and file adapter to generate file.
    Now I need to send and acknowldegment to
    webservice back if File is generated successfully..How do I do it ?
    Points will be awarded

    thanks..
    but I am not getting error when I tru to send request thru altovaxml spy iget following error in response
    <?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>ADAPTER.JAVA_EXCEPTION</code>
                             <text><![CDATA[
    com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: www.w3schools.com
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:455)
         at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:133)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:855)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         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>

  • Microsoft SQL 2005 WebServices - SOAP Result Parsing

    Hello,
    I have successfully connected to, sent a request and
    retrieved a SOAP response from, the WebServices functionality
    (ENDPOINT) using MS-SQL 2005. What I need to know how to do is
    parse the SOAP response in FLEX as to access the actual data for
    use in the application.
    How do I extract only the node that contains the data and
    then use this for binding my controls? I don't need any of the SOAP
    header stuff in there. Of course I could loop through the
    xyz.lastResult and parse onyl the parts I need to a new XML object,
    but that seems a lot of processing for something that is almost
    there.
    Any help would be appreciated.
    Sal

    quote:
    Originally posted by:
    TN_SGIA
    Hello,
    I have successfully connected to, sent a request and
    retrieved a SOAP response from, the WebServices functionality
    (ENDPOINT) using MS-SQL 2005. What I need to know how to do is
    parse the SOAP response in FLEX as to access the actual data for
    use in the application.
    Can you share the code to do that with me? I'm not good a
    SOAP requests, and this would be an excelent contribution to my
    project. Thank you.

  • 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

  • XML header for WebServices (SOAP)

    Hi all!
    I have quite strange problem about XML header in SOAP message for WS. Usually I don't care about XML header in SOAP message, because so far I had no problems calling load of WS on different servers. Stnadard XML header that comes out looks like this (1.0 and UTF-8 are in single quotes): <?xml version='1.0' encoding='UTF-8'?>.
    But this time, the webserver I'm trying to call accepts only double quotes, e.g. like this: <?xml version="1.0' encoding="UTF-8"?>, it doesn't understand single quotes at all and there is no way of changing it!
    JDeveloper uses apache soap for standard and makes single quotes. I tried raw http call by wrapping all text into post method -> that works, so webservice is working.
    I can't set anything except endpoint, parameters, method :(
    How can I make call that uses double quotes?
    Pseudo logic is like this:
    Vector params = new Vector();
    params.addElement(xxxx);
    Call call=new Call("xxx", "xxx", params, xxx, Constants.NS_URI_SOAP_ENC);
    Response response = call.invoke(endpointURL, "xxx");

    Hacked Oracle (apache) classes and put right values in it.
    It was hard coded string, who on earth could thought that :D

  • WebService SOAP MultiPort

    Hi!
    I have the following problem:
    How to realize a SOAP multi-ports / multi-services client
    that load the least data possible?
    Currently, to connect to 2 different ports, I created 2
    WebService objects, but the problem is that the WSDL is loaded
    twice.
    Later, we'll have 2 services of 5 ports, and therefore the
    wsdl will be loaded 10 times.
    Where is the advantage of the SOAP if we have to load the
    WSDL 10 times ...
    Is there a solution to avoid reloading it?
    Thanks in advance

    The WSDL URL should be cached by the browser, but can you log
    an enhancement
    request for <mx:WebService> to have it be able to parse
    and cache all ports
    and services once to avoid this step being redone? The second
    part of the
    enhancement will require the setters for the port and service
    properties
    to make the correct set of operations available (and to clear
    any cached
    operations for the old service / port).
    http://bugs.adobe.com/flex/

  • Unable to connect to Salesforce using webservices (SOAP protocol)

    Hi Team,
    Our requirement is to consume Sales force WSDL (SOAP) with out PI involvement. We are having two WSDL's, one for Login to Salesforce and second one to exchange data.
    We have created consumer service and logical port's. A proxy class with few methods is generated as expected.
    The first consumer service for login is working fine. When we login, it returns the session ID which is valid for 2 hours. We tried to pass the session ID using the below code and then call the second service. It then gives error 'INVALID_SESSION_ID: Invalid Session ID found in SessionHeader: Illegal Session'.
    Could you please let us know what am I missing? Is my approach correct?
    Thanks in advance!
    I have gone through the below links:
    Web Services Security using ABAP Proxies
    Consume SOAP WebService by SAP and add custom Header - Java Development - SCN Wiki
    DATA:   lr_login            TYPE REF TO zlogin,
            lr_action           TYPE REF TO zexc,
            ls_request          TYPE        zlogin_request,
            ls_response         TYPE        zlogin_response,
            ls_header           TYPE REF TO if_wsprotocol_ws_header,
            lr_system_fault     TYPE REF TO cx_ai_system_fault,
            lr_flight_not_found TYPE REF TO cx_sxidag_flight_not_found,
            lv_name             TYPE        string,
            lv_namespace        TYPE        string,
            lr_ixml             TYPE REF TO if_ixml,
            lr_xml_document     TYPE REF TO if_ixml_document,
            lr_xml_root         TYPE REF TO if_ixml_element,
            lr_xml_element      TYPE REF TO if_ixml_element,
            lr_xml_node         TYPE REF TO if_ixml_node,
            lv_xstring          TYPE        xstring,
            lv_string           TYPE        string,
            ls_disp_req         TYPE        zexc_reque,
            ls_disp_resp        TYPE        zexc_respo.
    TRY.
        CREATE OBJECT lr_login
          EXPORTING
            logical_port_name = 'ZLOGIN_PORT'.
      CATCH cx_ai_system_fault INTO lr_system_fault.
    ENDTRY.
    ls_request-username = 'zzz.abc.com'.
    ls_request-password = 'abcde123'.
    TRY.
        CALL METHOD lr_login->login
          EXPORTING
            input  = ls_request
          IMPORTING
            output = ls_response.
      CATCH cx_ai_system_fault INTO lr_system_fault.
        WRITE:/ 'System Fault'(sye). WRITE:/ lr_system_fault->errortext. EXIT.
      CATCH zsfcx_login_fault .
        WRITE:/ 'Login Fault'. EXIT.
      CATCH zsfcx_unexpected_error_fault .
        WRITE:/ 'Unexpected Error'. EXIT.
      CATCH zsfcx_invalid_id_fault .
        WRITE:/ 'Invalid Fault'. EXIT.
      CATCH cx_ai_application_fault .
        WRITE:/
      'Application fault'(apf).
        EXIT.
    ENDTRY.
    IF ls_response-result-session_id IS NOT INITIAL.
      TRY.
    * create instance
          CREATE OBJECT lr_action
            EXPORTING
              logical_port_name = 'ZEXC_PORT'.
    * get ws_header protocol
          ls_header ?= lr_action->get_protocol('IF_WSPROTOCOL_WS_HEADER').
          CONCATENATE
    '<Soap:Header>'
    '<ns2:session xmlns:ns2="https://salesforce.com/services/Soap/c/00Dc0000003ue9S">'
    '<SessionID>'ls_response-result-session_id'</SessionID>'
    '</ns2:session>'
    '</Soap:Header>'
           INTO lv_string.
    * convert to xstring
          lv_xstring = cl_proxy_service=>cstring2xstring( lv_string ).
          IF NOT lv_xstring IS INITIAL.
    * create ixml dom document from xml xstring
            CALL FUNCTION 'SDIXML_XML_TO_DOM'
              EXPORTING
                xml           = lv_xstring
              IMPORTING
                document      = lr_xml_document
              EXCEPTIONS
                invalid_input = 1
                OTHERS        = 2.
            IF sy-subrc = 0 AND NOT lr_xml_document IS INITIAL.
              lr_xml_root = lr_xml_document->get_root_element( ).
              lr_xml_element ?= lr_xml_root->get_first_child( ).
    * add header element by element to soap header
              WHILE NOT lr_xml_element IS INITIAL.
                lv_name = lr_xml_element->get_name( ).
                lv_namespace = lr_xml_element->get_namespace_uri( ).
                ls_header->set_request_header( name = lv_name namespace = lv_namespace dom = lr_xml_element ).
                lr_xml_element ?= lr_xml_element->get_next( ).
              ENDWHILE.
            ENDIF.
          ENDIF.
    * call outbound
          ls_disp_req-data-account_phone        = '123-456-7890'.
          ls_disp_req-data-billing_city         = 'HOUSTON'.
          ls_disp_req-data-billing_postal_code  = '77070'.
          ls_disp_req-data-billing_state        = 'TX'.
          ls_disp_req-data-billing_street       = 'Willow Chase'.
          ls_disp_req-data-check                = '34567'.
          ls_disp_req-data-reason_code          = 'Test'.
          ls_disp_req-data-salutation           = 'Mr.'.
          ls_disp_req-data-subject              = 'Amount not received'.
          TRY.
              CALL METHOD lr_action->insert_apdispute_case
                EXPORTING
                  input  = ls_disp_req
                IMPORTING
                  output = ls_disp_resp.
            CATCH cx_ai_system_fault INTO lr_system_fault.
              WRITE:/ 'System Fault'(sye). WRITE:/ lr_system_fault->errortext. EXIT.
            CATCH cx_ai_application_fault .
              WRITE:/
            'Application fault'(apf).
              EXIT.
          ENDTRY.
        CATCH cx_ai_system_fault INTO lr_system_fault.
          WRITE:/ 'System Fault'(sye). WRITE:/ lr_system_fault->errortext. EXIT.
        CATCH cx_ai_application_fault .
          WRITE:/
        'Application fault'(apf).
          EXIT.
      ENDTRY.
    ENDIF.
    Regards,
    Aravind

    Hi All, The issue was with the data that is being passed to lv_string using concatenation. These are case sensitive. Replaced SessionID in concatenate statement with sessionId and my issue is resolved.

  • View the webservice soap request/response

    Hi,
    I am in wls81sp4. I have some webservice developed in workshop. And I created webservice controls for them. When the webservice is called in jsp, I couldn't see the request/response soap message on wls console even though I set -Dweblogic.debug.webservice=true -Dweblogic.webservice.verbose=true. I have another webservice, the client is the proxy, and I can see the message on console.
    How can I see the message from calling the control? Thanks

    HI Ronald,
    To get the SOAP Fault into your orchestration:
    1) On the Send port in BizTalk:
       a) WCF Adapter Properties, Messages tab: Propagate Fault Message = true
       b) WCF Adapter Properties, Messages tab: Inbound message body: Either use "soap:Body" or use a path that extracts your message OR /*[local-name()='Fault'] to get the SOAP fault
       c) "Enable routing for failed messages" - this has no impact on the SOAP Fault. So you probably want it set to true to handle real transmission errors (non SOAP faults).
    2) On the Send port within your orchestration
       - Select the operation & then "New Fault Message"
       - Set the message name to SoapFault (or whatever)
       - Set the message type to be the referenced schema: BTS.soap_envelope_1__2.Fault. (If this was a SOAP 1.1 operation you would use BTS.soap_envelope_1__1.Fault).
    3) In the Scope around your Send operation
       - Add new exception handler
       - Select "Exception Object Type" to the port-name.operation-name.SoapFault you created in step 2
       - Specify the object name, e.g. Fault
       - Fault is now the XML of the SOAP Fault & you can use XPath to get the Fault Reason and Message elements.
    Refer:
    How to catch and process SOAP faults
    MSDN has explained the process in detail:
    Using BizTalk Server Exception Handling. You can blindly follow it.
    Please mark as answer or vote as helpful if my reply does

  • Problem in webservices SOAP

    Hi All
    iam new to webservices technology, i have downloaded a sample on DocumentStyle webserice and executed it as the per the instructions given the document and could succeed.
    now on the same lines i have written the below service and tried to execute.
    the steps what i followed are
    1 written a service interface
    2 written impl class which is as below
    3 compiled and created ear file using config.xml file
    4 started the oc4j server
    5 deployed the generated ear file into the server
    6 binded the service
    7 Checked if the service is running by the following url
    http://yourhost.com:8888/docws/validate
    it is sucessful
    8 prepared a jsp client
    9 placed it in default-wep-app directory
    10 opened the browser and called the jsp
    it has displayed me with a html form where i have to give some input.
    when clicked on submit
    i did not call the service
    so when i look at the server console
    it says as follows
    java.lang.IllegalArgumentException: Root element of a SOAP message must be: 'http://schemas.xmlsoap.org/soap/envelope/:Envelope'.
    please any one help me how to trouble shoot the above.
    i checked for the soap file in oc4j directory but failed.
    please help me in fixing the above problem
    import org.w3c.dom.*;
    import oracle.xml.parser.v2.*;
    import java.io.*;
    public class ValidateServiceImpl implements ValidateService
    public ValidateServiceImpl(){}
    public Element validate(Element e){
    Element processedEl=null;
    try{
    NodeList list = e.getChildNodes();
    Node node = null;
    String values [] = new String[list.getLength()-1];
    for(int i=0;i<list.getLength();i++){
    node = list.item(i);
    values = node.getNodeValue();
    int age = Integer.parseInt(values[0]);
    int income = Integer.parseInt(values[1]);
    int loanAmount = Integer.parseInt(values[2]);
    String answer=null;
    answer = checkAvailability(age,income,loanAmount);
    processedEl = createElement(answer);
    }catch(Exception ex){
    ex.printStackTrace();
    return null;
    return processedEl;
    private Element createElement(String value){
    Document xmldoc = new XMLDocument();
    Element e1 = xmldoc.createElement("answer");
    xmldoc.appendChild(e1);
    Text t = xmldoc.createTextNode(value);
    e1.appendChild(t);
    return (Element)xmldoc.getFirstChild();
    private String checkAvailability(int age,int income,int loanAmount){
    if((age>=20 && age <= 40) && (income > 2000) && loanAmount >= 10000){
    return "true";
    else{
    return "false";
    }

    Hi Ramadhar,
    If you are accessing the Webservice through the proxy you need to configure the proxy.
    1. Follow the menu Path:
    <b></b>System Administration>System Configuration>Service Configuration>Applications>com.sap.portal.ivs.httpservice>Services>proxy<i></i> and edit the property fields "HTTP-Enable Proxy Setting", "HTTP Proxy Host", and "HTTP Proxy port" and save.
    2.Right click on "com.sap.portal.ivs.httpservice" node and choose "Administrate" and restart the service.
    Hope this helps.
    -Venkat Malempati

  • Webservice,SOAP tools

    Hi Experts,
    I have developed a scenario from file to webservice(3rd party) and when I go and see in SXMB_MONI I could see a success flag and could see data succesfully updated but I am unable to see the data in the 3rd party system.Can you tell me how to check if the webservices I have called are successful using SOAP tools,which tool to use and how to use them.
    Thanks

    Hello,
    If you want to test the thirdparty services independantly then there are lot of client tools like SOAP UI, XML Spy, etc... I used only SOAP UI, it's easy to use. You can download them from [http://Soapui.org]
    You checked only in SXMB_MONI. Also check in the adapter monitoring and check for the status of the SOAP Receiver channels.
    raj.

Maybe you are looking for

  • Change Vendor Email Address

    Hi,   I need to change the vendor email address, i found the table adr6 and i can join the table LFA1 with the Address number, but i don´t think that this the way to do it. Can someone have a function module to change the email address in massive way

  • How to print adobe pdf with popups.

    im having problems printing popups (yellow notes) and the pdf. when i go to print, document and markups is selected but no popups show in the preview. ive tried it in adobe 6 and adobe 8 but same problem. i went to the help feature and followed the f

  • Collective Purchase Order

    Hi Folks, I have a sales order in place where the delivery date for the article is say 31.12.2008. In the Article Master Pl deliv time =1 days GR processing time = 1 days While creating Collective Purchase order, Procurement period is entered as 30.1

  • When Logic will only play from a certain point...

    Hey Did a search on that. No result. What is this about? What am I overlooking? I have this song: I go to locator 1, press play, and then it jumps to bar 84. Whenever I press play it jumps to bar 84! I´m sure it´s straghtforward simple, but help me o

  • Open Source for Workflow Management

    Hello All, a colleague of mine told me that he heard about an open source tool for Workflow Management. Is it right that there is an open source product? I don't know any open source products in the world of SAP. Thanks a lot for your answers!