Problems calling a Webservice

Hi All!
I'm having some problems calling a Webservice. I've created a deployable proxy and a client bean and from this bean I've generated a Webservice. When I test this Webservice the actual webservice call is succesfull but I get the following response from the Webservice:
HTTP/1.1 200 OK
Connection: close
Date: Fri, 13 May 2005 10:26:37 GMT
Server: Microsoft-IIS/6.0
P3P: CP="NOI DSP COR ADM DEV PSA PSD HIS OTP OUR IND STA"
X-Powered-By: ASP.NET
X-Powered-By: PHP/4.3.9
Status: 200 OK
Server: PEAR-SOAP 0.8.0RC2-devel
Content-Type: text/xml; charset=UTF-8
Content-Length: 1887
X-Zend-WinEnabler: 1.2.0
<br />
<b>Notice</b>:  Undefined property:  actor in <b>C:Program FilesZendWinEnablerphppearSOAPServer.php</b> on line <b>318</b><br /> <br />
<b>Notice</b>:  Undefined property:  mustunderstand in <b>C:Program FilesZendWinEnablerphppearSOAPServer.php</b> on line <b>322</b><br />
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/ ....etc"
As you can see there is some HTML code in the response. This HTML code causes problems for the SAP parser as it expects a SOAP:Envelope and not some HTML junk.
I've looked up what the properties <i>mustunderstand</i> and <i>actor</i> do in a SOAP header and they seem to be optional properties. On the Webservice side the SOAP parser unfortunately seem to think these properties are mandatory.
There's probably two ways to solve this problem. The first way is to ask the guys who host this Webservice to change it are their side. The other option is to add these properties to the SOAP header on the SAP side....which brings me to my question: Is there any way to add these two properties to the SOAP header before the deployable proxy calls the Webservice?

Hi Arnouid,
as far as I understand your post, the HTML code is the body of the response.
If it is so, it is not a correct SOAP-message. A SOAP header  is inside of the envelope and not outside of it.
So, it is not very a big surprise, that the parser don't like this.
Aside from the form of a SOAP-message, it is not even a XML-message, which must begin with <?xml...
tom

Similar Messages

  • Problem Calling a WebService multiple times

    Hi Guys,
    I am a relatively new user of DS 12.2 doing a proof-of-concept to call an in-house WebService for a batch of customer records - lets say 1000.
    The WS has an input schema where it's parameters are within a nested table such that it can be called for many customers in a single call if desired. WS input schema (made-up example)=
    -WS
    --$REQUEST_SCHEMA **added by DS on import
    ---CustVerification
    src_nr
    src_state
    I have successfully been able to create a Data-Flow that builds the input-schema such that 1 WS call is made with a nested input of all 1000 customers. This works and the output from the single call is correct (many records relating to the many inputs etc). Input schema =
    - <CustVerification>
    - <Details>
    <src_nr>1234<src_nr />
    <src_state>KY</src_state>
    </Details>
    - <Details>
    <src_nr>1234<src_nr />
    <src_state>KY</src_state>
    </Details>
    - <Details>
    <src_nr>1234<src_nr />
    <src_state>KY</src_state>
    </Details>
    </CustVerification>
    Now the problem - I am wanting to do this flow so that it calls the WS once PER customer i.e. 1 entry in many of the nested CustVerification structures.
    I have, again, been able to produce the correct XML schema (at least it looks correct) which repeats the Input Schema for each customer record. HOWEVER, when hooking this up to the function call of the WS as before, I either get only 1 single call like before with the last entry in the file run through it..... or, after playing with the query's input schema to add an extra root level and changing FROM clauses to map to the function call schema I then get a huge ACCESS_VIOLATION dump which mentions "LoadDFXML::put_string()+2427 byte(s)" and other such XML-related but non-helpful messages.
    New input schema is:
    - <CustVerification>
    - <Details>
    <src_nr>1234<src_nr />
    <src_state>KY</src_state>
    </Details>
    </CustVerification>
    - <CustVerification>
    - <Details>
    <src_nr>1234<src_nr />
    <src_state>KY</src_state>
    </Details>
    </CustVerification>
    - <CustVerification>
    - <Details>
    <src_nr>1234<src_nr />
    <src_state>KY</src_state>
    </Details>
    </CustVerification>
    So.... am I missing something simple in how I call a WS multiple times as opposed to once with multiple inputs? Could this be a setting/property somewhere? IS this linked with how I do a QueryTransform in a certain way to get the function called the right number of times? Anything else??
    Thanks for any advice/help.
    Flip.

    Thanks for the responses guys.... I actually got past the error with a change to the NRDM structure (as mentioned in the first reply, I think a small problem here really changes things).
    So - what I had to do to get this working properly was to add a new 'dummy' level into the structure - this kept it clean to denote that the 1 large bulk of messages were going to be sent through the WS many times. So - structure looks like this:
    Input_Query:
    - <ROOT>
    - <CustVerification>
    - <Details>
    <src_nr>1234<src_nr />
    <src_state>KY</src_state>
    </Details>
    </CustVerification>
    - <CustVerification>
    - <Details>
    <src_nr>1234<src_nr />
    <src_state>KY</src_state>
    </Details>
    </CustVerification>
    - <CustVerification>
    - <Details>
    <src_nr>1234<src_nr />
    <src_state>KY</src_state>
    </Details>
    </CustVerification>
    </ROOT>
    Then, in the Output schema for the function call, I had to create a dummy extra schema level also - say 'WS_Call', and put the function call within this structure. The FROM mapping has to be set so that both the input_query level AND the input_query.root level are mapped to the WS_Call schema.
    And then it works!
    Summary -- its a bugger.... but playing with the structure levels (and adding your own at times) and FROM clauses can work!
    Cheers,
    Flip.

  • Problem calling SAP webservice ECC_SRVCREQCRTRC1

    Hi,
    I want to call an SAP webservice to create a service notification from an Adobe Flex application.
    For this I use a standard SAP enterprise web service "ECC_SRVCREQCRTRC1".
    The web servce call is working and the notification is created.
    Now I also want to fill the description in the webservice. This is not working in the same way as filling the notification type parameter.
    Notification parameter tag is just a tag:
    <TypeCode>?</TypeCode>
    The description tag has an attribute:
    <Description languageCode="?">?</Description>
    In my code I fille the tag TypeCode like this:
    serviceRequest.TypeCode                      = "AB";
    Now my question is: "How can I fill the description tag including the language attribute"?
    I hope someone can help me with this.
    Thanks in advance and kind regards,
    Bart Elshout

    Hi Pradeep,
    Type code is a input/importing field of the header structure of this webservice. Type Code stands for the notification type.
    The description is also a subfield of the same header structure (but this field has an attribute "language").
    I hope you can help me,
    Thanks in advance and kind regards,
    Bart

  • Problem while calling a Webservice from a Stand alone java program

    Hello Everyone,
    I am using a java program to call a webservice as follows. For this I have generated the client proxy definition for Stand alone proxy using NWDS.
    Now when I call the method of the webservice I am getting the correct result but along with the result I am getting one error and one warning message in the output.
    The java code to call the webservice is as follows.
    public class ZMATRDESCProxyClient {
         public static void main(String[] args) throws Exception {
              Z_MATRDESC_WSDService ws = new Z_MATRDESC_WSDServiceImpl();
              Z_MATRDESC_WSD port = (Z_MATRDESC_WSD)ws.getLogicalPort("Z_MATRDESC_WSDSoapBinding",Z_MATRDESC_WSD.class);
              String res = port.zXiTestGetMatrDesc("ABCD134");
              System.out.print(res);
    The result I am getting is :
    Warning ! Protocol Implementation [com.sap.engine.services.webservices.jaxrpc.wsdl2java.features.builtin.MessageIdProtocol] could not be loaded (NoClassDefFoundError) !
    Error Message is :com/sap/guid/GUIDGeneratorFactory
    <b>Material Not Found</b> -
    > This is the output of webservice method and it is right.
    Can any one please let me know why I am getting the warning and error message and how can I fix this.
    Thanks
    Abinash

    Hi Abinash,
    I have the same problem. Have you solve that problem?
    I am using a java program to call a webservice too. And I have generated the client proxy definition for Stand alone proxy using NWDS. When I call the method of the webservice I am getting the correct result but along with the result I am getting one error and one warning message in the output.
    The java code to call the webservice is as follows.
    MIDadosPessoaisSyncService service = new MIDadosPessoaisSyncServiceImpl();
    MIDadosPessoaisSync port = service.getLogicalPort("MIDadosPessoaisSyncPort");
    port._setProperty("javax.xml.rpc.security.auth.username","xpto");
    port._setProperty("javax.xml.rpc.security.auth.password","xpto");
    String out = port.MIDadosPessoaisSync("xpto", "xpto");
    System.out.println(out);
    The result I am getting is :
    Warning ! Protocol Implementation [com.sap.engine.services.webservices.jaxrpc.wsdl2java.features.builtin.MessageIdProtocol] could not be loaded (NoClassDefFoundError) !
    Error Message is :com/sap/guid/GUIDGeneratorFactory
    <b>The result of the WS is correct!!!</b>
    The Java project does not have any warning. But the stand alone proxy project has following warnings associated with it.
    This method has a constructor name     MIDadosPessoaisSync.java     
    The import javax.xml.rpc.holders is never used     MIDadosPessoaisSyncBindingStub.java     
    The import javax.xml.rpc.encoding is never used     MIDadosPessoaisSyncBindingStub.java     
    The constructor BaseRuntimeException(ResourceAccessor, String, Throwable) is deprecated     MIDadosPessoaisSyncBindingStub.java
    It is very similar with your problem, could you help me?
    Thanks
    Gustavo Freitas

  • Problems while calling the webservice published at XI end

    Hi ,
    I have published a webservice at the XI end and to test it I am calling the webservice from xmlspy .
    I do get the popup for username and password in the xmlspy for the adapter but it fails to send the data to the webservice .
    I even checked the SOAP adapter status in the RWB and its grey. and the installed and started option of adapter monitoring the soap adapter is not shown .
    Can anyone through some light as to what can be the reason behind this .
    is it the problem with the adapter or the webservice
    Thanks
    Nikhil

    HI Ricardo ,
    I have tried that but still I am getting the below error.
    <b>java.lang.Exception: Channel not found for :SIEBEL_DEV:SIEBEL_SOAP in SOAP
         at com.sap.aii.af.mp.soap.web.HelperServlet.processFindChannel(HelperServlet.java:420)
         at com.sap.aii.af.mp.soap.web.HelperServlet.doGet(HelperServlet.java:126)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    </b>
    any other Ideas.
    Thanks
    Nikhil

  • Problem calling WebService from Oracle Forms created by JDeveloper

    Hi All,
    I am trying to call a Webservice from Oracle Form using JAVA Class created by Oracle JDeveloper.
    The Java Function (in JDeveloper) is as follows:
    public Vector GetPIValue(String TagName, String ReadingTime) throws Exception
    URL endpointURL = new URL(endpoint);
    Envelope requestEnv = new Envelope();
    Body requestBody = new Body();
    Vector requestBodyEntries = new Vector();
    requestBodyEntries.addElement(TagName);
    requestBodyEntries.addElement(ReadingTime);
    requestBody.setBodyEntries(requestBodyEntries);
    requestEnv.setBody(requestBody);
    Message msg = new Message();
    msg.send(endpointURL, "http://tempuri.org/GetPIValue", requestEnv);
    Envelope responseEnv = msg.receiveEnvelope();
    Body responseBody = responseEnv.getBody();
    return responseBody.getBodyEntries();
    When this Class is Imported into Oracle Forms the Function is converted into the following PL/SQL code:
    FUNCTION GetPIValue(
    obj ORA_JAVA.JOBJECT,
    a0 VARCHAR2,
    a1 VARCHAR2) RETURN ORA_JAVA.JOBJECT IS
    BEGIN
    Message('param passed: '||a0||' - '||a1);
    cls := JNI.GET_CLASS('oracle/forms/demos/webservice/ConnectToPIStub');
    mid := JNI.GET_METHOD(FALSE, cls, 'GetPIValue', '(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Vector;');
    args := JNI.CREATE_ARG_LIST(2);
    JNI.ADD_STRING_ARG(args, a0);
    JNI.ADD_STRING_ARG(args, a1);
    Message('I am Here');
    RETURN JNI.CALL_OBJECT_METHOD(obj, mid, args);
    END;
    When I am calling this Function from Within Forms and Passing into it the Parameters, I am displaying some Debugging Messages. When the Code reaches "JNI.CALL_OBJECT_METHOD" there is NO RESPONSE from the Webservice and nothing is moving forward after this Point...
    A similar Webservice that can be Tested is:
    http://www.webservicex.com/CurrencyConvertor.asmx
    with WSDL file:
    http://www.webservicex.com/CurrencyConvertor.asmx?wsdl
    Kindly note that this Webservice is running properly from the Web Browser but the call from Oracle Forms is not Succeeding!!!! :-((
    Any help is much appreciated.
    Regards,
    Baz

    Hi,
    Yes, you need to compile your source files with JDK 1.3 (since JInit 1.3.x.x uses JDK 1.3).
    Other solution would be to use JRE 1.5 (instead of JInitiator).
    Check out [this thread|http://forums.oracle.com/forums/thread.jspa?threadID=550563] on how to use JRE1.5
    -Arun

  • Problem calling WebService from XI scenario

    Hi forum,
    i trued to make a scenario to call a webservice from my XI scenario, i made it using the following blog :
    /people/bhavesh.kantilal/blog/2006/11/20/webservice-calls-from-a-user-defined-function
    I have configured a receiver SOAP channel and has mentioned the Target URL as
    http://www.webservicex.net/CurrencyConvertor.asmx
    now the scenario gives the error in the communication channel monitoring in RWB as
    SOAP: call failed: java.net.UnknownHostException: www.webservicex.net
    but from my local machine i can access this URL, ....can u pls site the defect

    Hi sudeep,
         Specify the proxy address details like address and port. and also check the soap receiver channel properly configured or not.
    Regards,
    Deviprasad Pothireddi.

  • Problem Calling WebService in Form

    Hi,
    I created a form to call a WebService and works fine in forms builder. When i passed the form to the application server i have a error "FRM-40735: ORA-105100". The Webservice is running on localhost, and the application server is installed in the same machine.
    The Java code used to create the connection is:
    m_httpConnection = new OracleSOAPHTTPConnection();
    Or Should I use the next code?
    Properties prop = new Properties();
    prop.setProperty(OracleSOAPHTTPConnection.PROXY_HOST, MYHOST");
    prop.setProperty(OracleSOAPHTTPConnection.PROXY_PORT,"MYPORT");
    m_httpConnection = new OracleSOAPHTTPConnection(prop);
    What values should have Myhost and MyPort ?
    Please help!
    best regards,
    TT

    I don't have a proxy. I have DevSuite10gr2 installed and have a webservice running on http://LX_PPORT:8988/TheService-WebService-context-root/GecaClipServiceSoap
    and the proxy running in the same machine. My machine name is LX_PPORT.
    When running from Forms Builder works fine.
    When i run from the internet explorer http://localhost:8889/forms/frmservlet?config=gettoken have that error.
    what configuration should i use?
    Thanks for your help.
    best regards, TT

  • Error when calling a Webservice's public method in Forms10g

    Hi,
    I'm getting the following error when calling a webservice's public method, i'm using Forms10g 10.1.2.3
    java.rmi.RemoteException; nested exception is: HTTP transport error javax.xml.soap.SOAPException
    java.security.PrivilegedActionException javax.xml.soap.SOAPException
    Message send failed javax.net.ssl.SSLException SSL handshake failed X509CertChI have added the Jar containing the client proxy in both Classpaths(system variable and default.env), the jar has been made with jdk 1.4
    I also have tested the client proxy from jDeveloper and it's working there, but in Forms i'm getting this error.
    I guess my problem might be that i'm calling a webservice that is secured since the url starts with https
    what should i do to fix this ??
    Regards
    Carlos

    I understand, so i have a doubt, why the webservice works on jDeveloper ??Not just JDeveloper even soapUI and Neatbeans have a way of working without a client certificate installed.
    I do not know how they achieve it. I know that they work without a client DC.
    Cheers,
    PS: See this http://stackoverflow.com/questions/8887434/webservices-ssl-https, it offers a clue.
    The java programs run unhindered when one-way authentication is being used. These products ship with a digital certificate that is in the path of most popular CAs.
    Corollary, if the Web Server is configured for mutual authentication then you need to install and configure the client certificate in the tools.
    Edited by: Prabodh on Dec 5, 2012 8:36 PM

  • Error While calling getListItem Webservice : Server was unable to process request. --- Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

    Hi All,
    we are calling sharepoint webservice from our web application but we are getting below error while calling webservice.
    Server was unable to process request. ---> Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
    Our code is as below.
    We used below 2 options but we got same error for both scenario,
    1)
                ListService.Lists objLists = new ListService.Lists();
                NetworkCredential objNetworkCredential = new NetworkCredential("username", "password");
                objLists.Credentials = objNetworkCredential;
                System.Xml.XmlNode objXmlNode = objLists.GetListItems("Tasks", null, null, null, null, null, null);
    2)         ListService.Lists objLists = new ListService.Lists();
                objLists.Proxy = new WebProxy("proxyaddress",true);
                NetworkCredential objNetworkCredential = new NetworkCredential("username", "password");
                objLists.Credentials = objNetworkCredential;
                System.Xml.XmlNode objXmlNode = objLists.GetListItems("Tasks", null, null, null, null, null, null);
    Please help me what is the problem while calling this service.
    Thanks in advance.
    Regards,
    Kaivan Shah

    Hi ,
    Here is a similar case ,you can have a look at this .
    Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) -Accessing the sharepoint site:
    http://social.msdn.microsoft.com/Forums/en-NZ/sharepointworkflow/thread/5eab2116-7d7c-4bf3-bfa1-48bd8992dded
    Thanks,
    Entan Ming

  • Error calling a webservice from one server process of the cluster

    Hi ,
    I have a servlet which on startup makes a call to a webservice. I deploy this webapp on the cluster.
    The cluster has two instances each instance having one server process.
    So when the server restarts one server process on one instance calls the web service the other process on other instance fails with a 503 response code.
    When I tried to reproduce the same problem using two server processes on the same instance both processes are able to call the webservice properly.
    I am slightly confused as to how different the second scenario is from first one as both are individual server process and may or may not run on same instance.
    Can anyone tell me the real cause.
    Rgds
    Shashank

    Hi Rajat,
    This is how the default trace looks
    FATAL: Application Servlet failed to notify devices.
    Caught java.rmi.RemoteException: Service call exception; nested exception is:
         com.sap.engine.services.webservices.jaxrpc.exceptions.InvalidResponseCodeException: Invalid Response Code: (503) Service Unavailable. The requested URL was:"http://<<server>>:50000/ManagementService/ManagementService?style=document"
         at com.om.mws.standaloneproxy.ManagementServiceBindingStub.notifyDevice(ManagementServiceBindingStub.java:1289)
         at com.om.mws.standaloneproxy.ManagementServiceBindingStub.notifyDevice(ManagementServiceBindingStub.java:1298)
         at com.om.ApplicationServlet$NotifyDevices.run(ApplicationServlet.java:86)
    Caused by: com.sap.engine.services.webservices.jaxrpc.exceptions.InvalidResponseCodeException: Invalid Response Code: (503) Service Unavailable. The requested URL was:"http://<<server>>:50000/ManagementService/ManagementService?style=document"
         at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.handleResponseMessage(MimeHttpBinding.java:980)
         at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.call(MimeHttpBinding.java:1430)
         at com.om.mws.standaloneproxy.ManagementServiceBindingStub.notifyDevice(ManagementServiceBindingStub.java:1282)
         ... 2 more
    java.lang.NoSuchMethodError
    at java.lang.Thread.destroy(Thread.java:779)
         at com.omApplicationServlet$NotifyDevices.run(ApplicationServlet.java:92)
    Rgds
    Shashank

  • Calling secured webservice from java

    Hi Experts,
    I am trying to call a secured webservice from java.
    I got the code to call a non secured web service in java.
    What changes do i need to do in this to call a secured webservice.
    Please help me.
    Thank you
    Regards
    Gayaz
    calling unsecured webservice
    package wscall1;
    import java.io.BufferedReader;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.StringBufferInputStream;
    import java.io.StringReader;
    import java.io.StringWriter;
    import java.io.Writer;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    import java.security.Permission;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.ParserConfigurationException;
    import org.apache.xml.serialize.OutputFormat;
    import org.apache.xml.serialize.XMLSerializer;
    import org.w3c.css.sac.InputSource;
    import org.w3c.dom.Document;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;
    public class WSCall2 {
    public WSCall2() {
    super();
    public static void main(String[] args) {
    try {
    WSCall2 ss = new WSCall2();
    System.out.println(ss.getWeather("Atlanta"));
    } catch (Exception e) {
    e.printStackTrace();
    public String getWeather(String city) throws MalformedURLException, IOException {
    //Code to make a webservice HTTP request
    String responseString = "";
    String outputString = "";
    String wsURL = "https://ewm52rdv:25100/Saws/SawsService";
    URL url = new URL(wsURL);
    URLConnection connection = url.openConnection();
    HttpURLConnection httpConn = (HttpURLConnection)connection;
    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    //Permission p= httpConn.getPermission();
    String xmlInput =
    "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ser=\"http://www.ventyx.com/ServiceSuite\">\n" +
    " <soapenv:Header>\n" +
    "     <soapenv:Security>\n" +
    " <soapenv:UsernameToken>\n" +
    " <soapenv:Username>sawsuser</soapenv:Username>\n" +
    " <soapenv:Password>sawsuser1</soapenv:Password>\n" +
    " </soapenv:UsernameToken>\n" +
    " </soapenv:Security>" + "</soapenv:Header>" + " <soapenv:Body>\n" +
    " <ser:GetUser>\n" +
    " <request><![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
                "                        <GetUser xmlns=\"http://www.ventyx.com/ServiceSuite\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
                "                        <UserId>rs24363t</UserId>\n" +
                "                        </GetUser>]]>\n" +
    " </request>\n" +
    " </ser:GetUser>\n" +
    " </soapenv:Body>\n" +
    "</soapenv:Envelope>";
    byte[] buffer = new byte[xmlInput.length()];
    buffer = xmlInput.getBytes();
    bout.write(buffer);
    byte[] b = bout.toByteArray();
    String SOAPAction = "GetUser";
    // Set the appropriate HTTP parameters.
    httpConn.setRequestProperty("Content-Length", String.valueOf(b.length));
    httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
    httpConn.setRequestProperty("SOAPAction", SOAPAction);
    // System.out.println( "opening service for [" + httpConn.getURL() + "]" );
    httpConn.setRequestMethod("POST");
    httpConn.setDoOutput(true);
    httpConn.setDoInput(true);
    OutputStream out = httpConn.getOutputStream();
    //Write the content of the request to the outputstream of the HTTP Connection.
    out.write(b);
    out.close();
    //Ready with sending the request.
    //Read the response.
    InputStreamReader isr = new InputStreamReader(httpConn.getInputStream());
    BufferedReader in = new BufferedReader(isr);
    //Write the SOAP message response to a String.
    while ((responseString = in.readLine()) != null) {
    outputString = outputString + responseString;
    //Parse the String output to a org.w3c.dom.Document and be able to reach every node with the org.w3c.dom API.
    Document document = parseXmlFile(outputString);
    NodeList nodeLst = document.getElementsByTagName("User");
    String weatherResult = nodeLst.item(0).getTextContent();
    System.out.println("Weather: " + weatherResult);
    //Write the SOAP message formatted to the console.
    String formattedSOAPResponse = formatXML(outputString);
    System.out.println(formattedSOAPResponse);
    return weatherResult;
    public String formatXML(String unformattedXml) {
    try {
    Document document = parseXmlFile(unformattedXml);
    OutputFormat format = new OutputFormat(document);
    format.setIndenting(true);
    format.setIndent(3);
    format.setOmitXMLDeclaration(true);
    Writer out = new StringWriter();
    XMLSerializer serializer = new XMLSerializer(out, format);
    serializer.serialize(document);
    return out.toString();
    } catch (IOException e) {
    throw new RuntimeException(e);
    private Document parseXmlFile(String in) {
    try {
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    InputSource is = new InputSource(new StringReader(in));
    InputStream ins = new StringBufferInputStream(in);
    return db.parse(ins);
    } catch (ParserConfigurationException e) {
    throw new RuntimeException(e);
    } catch (SAXException e) {
    throw new RuntimeException(e);
    } catch (IOException e) {
    throw new RuntimeException(e);
    } catch (Exception e) {
    throw new RuntimeException(e);
    static {
    javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(new javax.net.ssl.HostnameVerifier() {
    public boolean verify(String hostname, javax.net.ssl.SSLSession sslSession) {
    if (hostname.equals("ewm52rdv")) {
    return true;
    return false;
    }

    Gayaz  wrote:
    What we are trying is we are invoking webservice by passing SOAP request and we will get soap response back.I understand what you're trying to do, the problem is with tools you're using it will take a while for you do anything a little away from the trivial... Using string concatenation and URL connection and HTTP post to call webservices is like to use a hand drill... It may work well to go through soft wood, but it will take a lot of effort against a concrete wall...
    JAX-WS and JAXB and annotations will do everything for you in a couple of lines and IMHO you will take longer to figure out how to do everything by hand than to learn those technologies... they are standard java, no need to add any additional jars...
    That's my thought, hope it helps...
    Cheers,
    Vlad

  • Calling the webservice twice - Duplicate entries

    Hi Experts,
    Scenario : SOAP Client -> Call Microsoft webservice -> XI JDBC Sync call-> Call Microsoft webservice.
    BPM Steps:
    1. Receive Step -> Get the SOAP Client request (Open S/A Bridge)
    2. Send Step -> Async call to Microsoft webservice  to update the log status.
    3. Send Step -> Sync call to JDBC
    5. Send Step -> Close the S/A bridge
    6. Send Step -> Call the Microsoft webservice to update the log status.
    Receiver Determination Steps
    1. SOAP Sender to BPM
    2. BPM(Async request) to 2 Log Business Service. I have mentioned the both business service under Configured Receivers section in Receiver Determination.
    3. BPM(Sync request) to JDBC
    Issue : The JDBC part works fine. Only problem with the Microsoft webservice. Twice it update the log table. ie. Twice it calls the Microsoft's each webservice.
    Please help me out, how to stop the second retry and let me know the above approach is correct or not.
    Thanks & Regards
    Sara

    Hi Sara,
    As per your info, Earlier you was trying to call both logging updates under one Sync/Async Bridge. But on Webservice side it will give you two responses and you will handling only one.
    In later case also you are handling only 1st response of Webservice call, but the another call is still open.
    Actually you are trying to built two Sync/Async Birdges. Which is not at all possible under one BPM.
    SAP have not recommended for it.
    Refer
    http://help.sap.com/saphelp_nw04/helpdata/en/43/65d4dab39b0398e10000000a1553f6/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/83/d2a84028c9e469e10000000a1550b0/content.htm
    You need to create two seperate interfaces for this.
    For e.g.
    1st will call the Webservice before updating the JDBC tables.
    2nd After updating the JDBC table you can again call the Webservice for updated logging status.
    Thanks
    Swarup
    Edited by: Swarup Sawant on Jun 2, 2008 8:50 AM

  • How to buid a jar in Jdeveloper, for a class that calls a webservice???

    Hello
    I have a project with a main class which calls a webservice,
    I deployed it in a jar file and add all necessary jars in the CONTRIBUTORS node in JAR Deplyment Profile wizard
    when I tried to run the jar in command window using the command : c:\java -cp ruba.jar mypackage.Main
    the following error results :
    javax.xml.rpc.JAXRPCException: javax.xml.soap.SOAPException: Unable to create SO
    AP Factory: Provider com.sun.xml.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl n
    ot found
    PLZ HELP it is URGENT

    THE PROBLEM IS SOLVED , i USED ECLIPSE INSTEAD OF JDEVELOPER AND THE JAR WORKED , IT IS A JDEVELOPER BUG, I AM NEVER GONE USE IT AGAIN :@

  • How to pass a xml CDATA in string element when OSB calling a webservice?

    How to pass a xml CDATA in string element when OSB calling a webservice?
    I have a business service (biz) that route to operation of a webservice.
    A example of request to this webservice legacy:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eg="example">
    <soapenv:Header/>
    <soapenv:Body>
    <ex:execute>
    <ex:arg><![CDATA[<searchCustomerByDocumentNumber>
    <documentNumber>12345678909</documentNumber>
    </searchCustomerByDocumentNumber>]]></ex:arg>
    </ex:execute>
    </soapenv:Body>
    </soapenv:Envelope>
    the type of ex:arg is a string.
    How to pass this CDATA structure to webservice in OSB?

    Steps to solve this problem:
    1. Create a XML Schema. E.g.:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
         elementFormDefault="unqualified">
         <xs:complexType name="searchCustomerByDocumentNumber">
              <xs:sequence>
                   <xs:element name="documentNumber" minOccurs="0">
                        <xs:annotation>
                             <xs:documentation>
                             </xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                             <xs:restriction base="xs:string" />
                        </xs:simpleType>
                   </xs:element>
         </xs:sequence>
         </xs:complexType>
         <xs:element name="searchCustomerByDocumentNumber" type="searchCustomerByDocumentNumber"></xs:element>
    </xs:schema>
    With this XSD, the XML can be generate:
    <?xml version="1.0" encoding="UTF-8"?>
    <searchCustomerByDocumentNumber xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="searchCustomerByDocumentNumber.xsd">
    <documentNumber>documentNumber</documentNumber>
    </searchCustomerByDocumentNumber>
    2. Create a XQuery to create a searchCustomerByDocumentNumber ComplexType. E.g.:
    (:: pragma bea:global-element-return element="searchCustomerByDocumentNumber" location="searchCustomerByDocumentNumber.xsd" ::)
    declare namespace xf = "http://tempuri.org/NovoSia/CreateSearchCustomerByDocumentNumber/";
    declare function xf:CreateSearchCustomerByDocumentNumber($documentNumber as xs:string)
    as element(searchCustomerByDocumentNumber) {
    <searchCustomerByDocumentNumber>
    <documentNumber>{ $documentNumber }</documentNumber>
    </searchCustomerByDocumentNumber>
    declare variable $documentNumber as xs:string external;
    xf:CreateSearchCustomerByDocumentNumber($documentNumber)
    3. In your stage in pipeline proxy add a assign calling the XQuery created passing the document number of your payload.
    Assign to a variable (e.g.: called searchCustomerByDocumentNumberRequest)
    4. Create another XQuery Transformation (XQ) to create a request to the webservice legacy. E.g.:
    <ex:arg>{fn-bea:serialize($searchCustomerByDocumentNumberRequest)}</ex:arg>
    For more information about xquery serialize function:
    41.2.6 fn-bea:serialize()
    You can use the fn-bea:serialize() function if you need to represent an XML document as a string instead of as an XML element. For example, you may want to exchange an XML document through an EJB interface and the EJB method takes String as argument. The function has the following signature:
    fn-bea:serialize($input as item()) as xs:string
    Source: http://docs.oracle.com/cd/E14571_01/doc.1111/e15867/xquery.htm

Maybe you are looking for