Call web service using Java code

Hi all,
Sorry if this question sounds stupid. I am new to web services.
I am having a web service written in oracle, using soap-api. I want to call this web service in Java application, parse the result and save it in the database.
Can anyone please guide me on this or give me some related link. I tried searching on google, tried to implement some of the solutions I got in search results, but it was not that helpful.
Waiting for your help. Please guide me through this.
Waiting for your replies. Thanks in advance.
Regards,
Kinnaree

Hi all,
From my java code, I tried giving
String testStr = service.search("and formatted_address like '%Test House%'");
This service method is defined on my SearchPortType.java file. This and the searchClient.java, as I mentioned earlier are auto generated files by myeclipse IDE. I gave WSDL URL, which generated these two files.
This helped me invoking the service, but it gives me an exception as below:
Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Couldn't send message.
org.codehaus.xfire.fault.XFireFault: Couldn't send message.
     at org.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89)
     at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:30)
     at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
     at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
     at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
     at org.codehaus.xfire.client.Client.invoke(Client.java:336)
     at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
     at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
     at $Proxy8.search(Unknown Source)
     at com.imriel.client.cbre.chelsea.util.test.searchClient.main(searchClient.java:104)
Caused by: org.codehaus.xfire.XFireException: Couldn't send message.
     at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:145)
     at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
     at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
     ... 8 more
Caused by: java.net.ConnectException: Connection timed out: connect
     at java.net.PlainSocketImpl.socketConnect(Native Method)
     at java.net.PlainSocketImpl.doConnect(Unknown Source)
     at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
     at java.net.PlainSocketImpl.connect(Unknown Source)
     at java.net.SocksSocketImpl.connect(Unknown Source)
     at java.net.Socket.connect(Unknown Source)
     at java.net.Socket.connect(Unknown Source)
     at java.net.Socket.<init>(Unknown Source)
     at java.net.Socket.<init>(Unknown Source)
     at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:79)
     at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:121)
     at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:706)
     at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1321)
     at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:386)
     at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
     at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
     at org.codehaus.xfire.transport.http.CommonsHttpMessageSender.send(CommonsHttpMessageSender.java:369)
     at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:123)
     ... 10 more
Any ideas, where I am wrong????
Regards,
Kinnaree

Similar Messages

  • How to call web-service using only java code

    Hello, how to call web-service using only java code. I can call it from BPM process or Web Dynpro Java Application, but if I need to call it from ejb component?

    I'm found answer:
    Java and SAP Portal blog: How to call web service from java code example

  • How to call web service using J2SE 1.3?

    Dear All,
    i have developed a web service by jdev 10.1.3 (JAX-RPC with web service security
    enabled).
    i generate the ws proxy (jdev 10.1.3) and run it with wsclient_extended.jar (required JDK 1.4.1 or above??).
    but one of my client say he has to use J2SE 1.3.x (as OS=AIX 4.3 that without J2SE
    1.4.x ), could anyone tell me how can generate ws proxy (with supporting
    library) for jdk 1.3.x?
    if oracle don't have such library / tools, any third party tools / library available?
    thank you.
    lsp

    I'm found answer:
    Java and SAP Portal blog: How to call web service from java code example

  • Call ABAP Web Service with Java code only

    Hi all,
    First of all, I am writing script in Adobe form but am not using the one in SAP.
    I am trying to call the web service and process the result with script open (i.e. no dataconnection created), because I am trying to do that in a dialog.
    I can call a non-SAP web service without problem, but I am not able to call a simple web service with only a single string input, anyone have any example?
    Here is the SOAP for input:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:rfc:functions">
       <soapenv:Header/>
       <soapenv:Body>
          <urn:Z_RFC_GET_STAFF_BANK_INFO>
             <A_STAFF_ID>0123456</A_STAFF_ID>
          </urn:Z_RFC_GET_STAFF_BANK_INFO>
       </soapenv:Body>
    </soapenv:Envelope>
    Here is my code to call:
         var cURL = "http://some-host-name:port/sap/bc/srt/wsdl/bndg_DEDB492BB032E7F1B09F001CC4FBCEC9/wsdl11/allinone/ws_policy/document?sap-client=300";
         var response = SOAP.request(
              cURL: cURL,
              oRequest: {
                   "urn:sap-com:document:sap:rfc:functions:Z_RFC_GET_STAFF_BANK_INFO": {
                        A_STAFF_ID: "0123456"
    Regards
    Bill

    Hello I have the same problem, were you able to execute the WS through the JS code now?
    I would like to call an ABAP WS using JavaScript to return complex structures that I would like to manage directly with JS.
    I tried with this code and I get the error "RaiseError: Acrobat Raise." when the request is executed:
    var WSUrl = "http://<server>:<port>/sap/bc/srt/wsdl/bndg_4D15C75529330AF1E10000000A150429/wsdl11/allinone/ws_policy/document?sap-client=500";
    var VendorNumber = xfa.form.DATA.DATAFLOW.SF_HEADER.VENDOR_NUMBER.rawValue;
    try {
    // Create request structure, read Input out of text field
    var request = {
              "urn:sap-com:document:sap:soap:functions:mc-style:ZWsTest" : {ILifnr: VendorNumber}
    SOAP.wireDump = true;
    // Call web service using SOAP object
    var response = SOAP.request ({
            cURL: WSUrl,
            oRequest: request
    //        cAction: "urn:sap-com:document:sap:soap:functions:mc-style"
    } catch (e) {
        xfa.host.messageBox(e.toString()); //pop-up "TypeError:service.CelsiusToFahrenheit is not a funciton"
    with this other code I get the error "SOAPError: CX_ST_MATCH_ELEMENT:XSLT exception.System expected element 'ILifnr'":
    try {
        var myProxy = SOAP.connect(WSUrl);
        var result = myProxy.ZWsTest( { ILifnr: VendorNumber } );
        xfa.form.DATA.DATAFLOW.SF_HEADER.E_DESCRIPTION.rawValue = result;
    // Display the response in the console:
       console.println("Result is " + result);
    } catch (e) {
        xfa.host.messageBox(e.toString()); //pop-up "TypeError:service.CelsiusToFahrenheit is not a funciton"
    in the second option, if I make the field ILifnr optional the call is succesfully performed but the parameter is not passed to the WS. So the call is working.
    Using stand-alone LiveCycle designer 8.1 and Adobe Reader 8
    Any suggestions?
    Many thanks,
    G.
    Edited by: Guillem Mateu Navalón on Jan 13, 2011 1:13 PM

  • Creating Web Services using Java Implementation

    Hi,
    This is quite a general question on how to create a Web Service using Java Implementation that needs to conform to a client XML schema.
    Here are my Version specs,
    I am using Jdeveloper 10.1.3.4.0 and deploying onto OAS 10.1.3.
    I will be creating a J2ee 1.4 (JAX-RPC) Web Service using Document/Wrapped style.
    I have been provided an XML schema from the client which is quite complex.
    Using a top-down approach, I can create my WSDL file and import the XML Schema for my type definitions.
    The Web service aim is to accept some parameters and return some data from the Oracle Database. The
    XML response from the web service must conform to the element, attribute definitions in the provided XML schema.
    From a Java implementation approach, what is the best (simplest or quickest) way to retrieve data from the Oracle
    tables and map each fields/column to the required XML output (defined in the XML schema).
    I'm not too concerned with using Java to retrieve data from the Database, more with how I can map the data returned
    to the required output. Can this mapping task be controlled within the Java program?
    Thanks in advance.

    Hi,
    This is quite a general question on how to create a Web Service using Java Implementation that needs to conform to a client XML schema.
    Here are my Version specs,
    I am using Jdeveloper 10.1.3.4.0 and deploying onto OAS 10.1.3.
    I will be creating a J2ee 1.4 (JAX-RPC) Web Service using Document/Wrapped style.
    I have been provided an XML schema from the client which is quite complex.
    Using a top-down approach, I can create my WSDL file and import the XML Schema for my type definitions.
    The Web service aim is to accept some parameters and return some data from the Oracle Database. The
    XML response from the web service must conform to the element, attribute definitions in the provided XML schema.
    From a Java implementation approach, what is the best (simplest or quickest) way to retrieve data from the Oracle
    tables and map each fields/column to the required XML output (defined in the XML schema).
    I'm not too concerned with using Java to retrieve data from the Database, more with how I can map the data returned
    to the required output. Can this mapping task be controlled within the Java program?
    Thanks in advance.

  • Create web service from java code in Jdeveloper 11.1.1.5

    I am try to create web service from java code by default it is connected to Integrated web logic server and generate a
    WSDL like this.
    http://localhost:7101/javaexcel-project1-context-root/MyWebService1Soap12HttpPort.
    please tell me how we can change this local host to our needed Host and how to deploy this web service to web logic server.

    Hi,
    Just right click on your project and deploy it to your application server (Weblogic Server (Not the Integrated server)). {Before that, you have create your Application server connection in the Jdeveloper).
    After deployment open the Admin console of the weblogic server and find your ear of the project.Click on that (Go to the "Testing tab") and you will get the "WSDL" (Concreate wsdl)  and "Test Client" of the Project.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Create web service using java class

    Hi,
    I created the web service using java class then i deployed this web service in to the weblogic admin server.when i tested this process it is working fine.
    when I tested The generated WSDL to this process in browser(IE). it is not working.
    I need to to invoke this webservice from another BPEL but this WSDL is not working.

    Hi,
    when i created the webservice in jdeveloper by default it is connected to integrated weblogic server and generates this wsdl.
    http://localhost:7101/helloApplication-javaexcel-context-root/MyWebService1Soap12HttpPort?WSDL
    then I deployed this webservice in to the Adminserver.it gives the following URL.
    http://192.168.56.1:7001/extracExcelToCSV-extractExcelToCSV-context-root/ExtractExcelToCSVSoap12HttpPort?wsdl
    This URL is not working but when i tested this process it is working fine.
    It is giving below error when i try to invoke from jdeveloper
    Error while reading wsdl file
    caused by:java.net.connectExcepption :Connection timed out:connect

  • Call web service using code.

    we want to call a web service from ADF JSP form.
    We used web service data control. But deployment failed.
    we applied Patch 5878326 to JDeveloper 10.1.3.3.0 and OAS.
    But problem is not solved.
    So we need a new way to call web services.
    is there any other way to call web services from Jdev.
    any code sample will be appreciated.
    Thanks.

    Workaround for the Connection Failure
    In JDeveloper, locate the .deploy file in the Resources folder of your web application project.
    Double-click the file to open the WAR Deployment Profile Properties dialog.
    Expand File Groups - WEB-INF/classes - Contributors.
    In the Contributors panel, click Add and use the Browse dialog to locate the .adf folder in the root for your application (for example, /jdev/mywork//.adf path.)
    Select the .adf folder and add it as a contributor to the deployment profile.
    Note that the .adf folder does not become part of the deployable archive. This merely ensures that the contents of the META-INF get placed in an appropriate location in the archive that will permit the web container to find it when the application loads.
    The failure to get the connection to Webservice is beacuse the "connections.xml" is not available in the deployed archive.
    This has been release note'd as in
    http://www.oracle.com/technology/products/jdev/htdocs/10.1.3.0.3/10.1.3_addendum.html under "Deployment issues"

  • How to access .asmx Web Service using JAVA? Newbie

    Hello Experts,
    Currently, I have a project where in I have to access a ,NET web service. It is made of C#. I just want to ask how will I start the accessing process? I made this simple equation on how my project is.
    Java Project + C#.Net Web Service = Integration
    1. Do i need to create a Web Service too for the Java Project? If yes, What are the necessary tools needed for the creation of this Java Web Service?
    2. The .NET Web Service is available online. (It is made by other people).
    3. Based on the equation, what is the equivalent technology for the + sign?
    4. Can you site a concrete example for accessing a web service?
    5. I'm new here. Totally I have no idea where to start.
    6. Thank you experts.
    Edited by: Benedict.Aluan on 05 30, 08 1:38 PM
    Edited by: Benedict.Aluan on 05 30, 08 1:39 PM

    Hello
    Thanks a lot for your help ...
    I am developing simple J2EE based web service client using IBM WSAD 5.1. I have used the following code to call .asmx web service in Java
    String url = "http://www.w3schools.com/webservices/tempconvert.asmx?wsdl";
         String namespace = "http://tempuri.org/";
         name = request.getParameter("txtName");
         try
              System.out.println("In Internet Service");
              ServiceFactory factory = ServiceFactory.newInstance();
              Service serv = factory.createService(new URL(url),new QName(namespace,"TempConvert"));
              System.out.println("Got Service......");
              Call obj = (Call)serv.createCall();
              System.out.println("Got Call......");
              obj.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY,"");
              obj.setProperty(Call.OPERATION_STYLE_PROPERTY,"wrapped");
              obj.setTargetEndpointAddress(url);
              obj.setPortTypeName(new QName(namespace,"TempConvertSoap"));
              obj.setOperationName(new QName(namespace,"FahrenheitToCelsius"));
              obj.addParameter("param1",XMLType.XSD_STRING,String.class,ParameterMode.IN);
              obj.setReturnType(XMLType.XSD_STRING);
              System.out.println("Parameters Set.....");
              Object[] params = new Object[]{name};
              k = (String)obj.invoke(params);
              System.out.println("Result: "+k);
         catch(Exception e)
            System.out.println("Exception is : "+e);
        }But this code is throwing exception that
    Invalid Address "http://www.w3schools.com/webservices/tempconvert.asmx?wsdl"I have also tried this URL with Java Proxy. But it showing the same error.
    Plz can u tell me how to access .asmx web service ?
    Waiting 4 reply.

  • Calling Web service from Java Concurrent Program

    Hi,
    I created a Java concurrent program and created executable. Here is my code.
        public void runProgram(CpContext ctx) {
            String value = "Java Concurrent Program Testing";
            Hello hell = new Hello();
            String returnValue = hell.testURL(value);
            if(returnValue.equalsIgnoreCase("TRUE")){
                ctx.getLogFile().writeln("-- Java Concurrent Program Testing --", 0);
                ctx.getOutFile().writeln("-- Java Concurrent Program Testing --");
                ctx.getReqCompletion().setCompletion(ReqCompletion.NORMAL, "");
            else{
                ctx.getLogFile().writeln("-- Hello World! --", 0);
                ctx.getOutFile().writeln("-- Hello World! --");
                ctx.getReqCompletion().setCompletion(ReqCompletion.NORMAL, "");
        }testURL() call the web service and get the response. but when I am selecting View Output option I am always geting out put as
    -- Hello World! --I tested the logic of calling web service. It giving me out put "true". Here is my Web service calling code
        public String testURL(String Value){
            HttpURLConnection httpConn = null;
            ByteArrayOutputStream bout = null;
            String setWebServiceURLResponse = "";
            String responseString="";
            String outputString = "";
            try{
                httpConn = getHttpConnection();
                bout = new ByteArrayOutputStream();
                String xmlInput = soapBodyStart +
                "<ns1:getTestURL>\n" +
                "            <ns1:URL>"+Value+"</ns1:URL>\n" +
                "        </ns1:getTestURL>"+
                soapBodyEnd;
                byte[] buffer = new byte[xmlInput.length()];
                buffer = xmlInput.getBytes();
                bout.write(buffer);
                byte[] b = bout.toByteArray();
                httpConn = setHttpConnectionRequest(b,httpConn);
                //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);
                String formattedSOAPResponse = formatXML(outputString);
                System.out.println("Formatted response = \n" +formattedSOAPResponse);
                //NodeList nodes = document.getElementsByTagName("setWebServiceURLResponse");
                //NodeList nodes = document.getElementsByTagName("getTestURLResponse");
                 NodeList nodes = document.getElementsByTagName("ns0:getTestURLResponse");
                int len = nodes.getLength();
                System.out.println("Inside testURL Node Lenght  = "+ len);
                for(int s=0; s<nodes.getLength() ; s++){
                    Node authenticateResultNode = nodes.item(s);
                    if(authenticateResultNode.getNodeType() == Node.ELEMENT_NODE){
                        Element authenticateResultElement = (Element)authenticateResultNode;
                        //NodeList authenticateResultValueNode = authenticateResultElement.getElementsByTagName("ns0:return");
                        //NodeList authenticateResultValueNode = authenticateResultElement.getElementsByTagName("return");
                         NodeList authenticateResultValueNode = authenticateResultElement.getElementsByTagName("ns0:return");
                        Element authenticateResultValue = (Element)authenticateResultValueNode.item(0);
                        NodeList textFNList = authenticateResultValue.getChildNodes();
                        //System.out.println("Authenticate Result : " + ((Node)textFNList.item(0)).getNodeValue().trim());
                         setWebServiceURLResponse = ((Node)textFNList.item(0)).getNodeValue();
                         //System.out.println("Authenticate Response in getAuthenticate method : " + authenticateresponse);
                    }//end of if clause
                }//end of for loop with s var
                System.out.println("Inside setWebServcieURLToFile response = " + setWebServiceURLResponse);
            catch(Exception e){
                e.printStackTrace();
            return setWebServiceURLResponse;
        }Where I am going wrong ?
    Regards,
    Ajay Sharma

    sample code:
    static string url = "http://my.webservice.url"; ---------------> The actual web service URL
    Call = new Call(url); --------------------------------------------------> The call object used by JAX-RPC
    Object[] params = new Object[]{param1, param2};---------> build the call parameters
    Boolean/Integer/Whatever result = call.invoke("method name", params);------>call the invoke method to get the result

  • Calling Web services using SOAP

    Hi,
    I am trying to execute a function through a webservice using a SOAP
    package and am getting the following error:ORA-30625: method dispatch
    on NULL SELF argument is disallowed. I think this is to do with one of
    the parameters being null but dont know how to fix this. Following is
    the function:
    CREATE OR REPLACE FUNCTION ILACPMSPRC.GET_GREETING_fnc (p_name IN
    VARCHAR2
    --, p_date VARCHAR2
    , p_age VARCHAR2 )
    RETURN NUMBER
    AS
    l_request soap_api_pkg.t_request;
    l_response soap_api_pkg.t_response;
    l_price NUMBER;
    -- DBMS_OUTPUT.ENABLE(20000);
    BEGIN
    DBMS_OUTPUT.ENABLE(20000);
    DBMS_OUTPUT.PUT_LINE('BEGIN');
    -- Set proxy details if no direct net connection.
    --UTL_HTTP.set_proxy('myproxy:4480', NULL);
    --UTL_HTTP.set_persistent_conn_support(TRUE);
    -- Set proxy authentication if necessary.
    --soap_api.set_proxy_authentication(p_username => 'myusername',
    -- p_password => 'mypassword');
    l_request := soap_api_pkg.new_request(p_method => 'ns1:validate',
    p_namespace => 'xmlns:ns1="http://
    impl.webservice.validation.workmgt.cb.irishlife.ie/xsd"');
    -- parameter 1 is name
    soap_api_pkg.add_parameter(p_request => l_request,
    p_name => 'workType',
    p_type => 'xsd:string',
    p_value => p_name);
    -- parameter 2 is date
    soap_api_pkg.add_parameter(p_request => l_request,
    p_name => 'workItemNo',
    p_type => 'xsd:string',
    p_value => 'ABC');
    --p_value   => '2007-01-01T00:00:00Z');
    -- parameter 3 is age
    soap_api_pkg.add_parameter(p_request => l_request,
    p_name => 'indexName',
    p_type => 'xsd:string',
    p_value => p_age);
    l_response := soap_api_pkg.invoke(p_request => l_request,
    p_url => 'http://
    10.253.55.139:7400/axis2/services/ValidationService',
    p_action => 'http://
    10.253.55.139:7400/axis2/services/ValidationService/validate');
    if l_response.doc is not null then
    dbms_output.put_line('the doc is not null');
    end if;
    DBMS_OUTPUT.PUT_LINE ( 'p_name = ' || p_name );
    HERE l_price := soap_api_pkg.get_return_value(p_response =>
    l_response,
    p_name =>
    'validateResponse',
    p_namespace =>
    'xmlns:ns1="http://impl.webservice.validation.workmgt.cb.irishlife.ie/
    xsd"');
    if l_price is null then
    dbms_output.put_line('opps, the price is null');
    end if;
    DBMS_OUTPUT.PUT_LINE('PRICE:'||l_price);
    RETURN l_price;
    EXCEPTION
    WHEN OTHERS THEN
    dbms_output.put_line(SQLCODE || ', ' || SQLERRM);
    RETURN NULL;
    END GET_GREETING_fnc;
    Where HERE is marked is where the problem lies...the package body is
    here:
    CREATE OR REPLACE PACKAGE BODY SOAP_API_PKG AS
    -- Name : http://www.oracle-base.com/dba/miscellaneous/soap_api
    -- Author : DR Timothy S Hall
    -- Description : SOAP related functions for consuming web services.
    -- Ammedments :
    -- When Who What
    -- =========== ========
    =================================================
    -- 04-OCT-2003 Tim Hall Initial Creation
    -- 23-FEB-2006 Tim Hall Parameterized the "soap" envelope tags.
    -- 08-JUN-2006 Tim Hall Add proxy authentication functionality.
    g_proxy_username VARCHAR2(50) := NULL;
    g_proxy_password VARCHAR2(50) := NULL;
    PROCEDURE set_proxy_authentication(p_username IN VARCHAR2,
    p_password IN VARCHAR2) AS
    BEGIN
    g_proxy_username := p_username;
    g_proxy_password := p_password;
    END;
    FUNCTION new_request(p_method IN VARCHAR2,
    p_namespace IN VARCHAR2,
    p_envelope_tag IN VARCHAR2 DEFAULT 'SOAP-ENV')
    RETURN t_request AS
    l_request t_request;
    BEGIN
    l_request.method := p_method;
    l_request.namespace := p_namespace;
    l_request.envelope_tag := p_envelope_tag;
    RETURN l_request;
    END;
    PROCEDURE add_parameter(p_request IN OUT NOCOPY t_request,
    p_name IN VARCHAR2,
    p_type IN VARCHAR2,
    p_value IN VARCHAR2) AS
    BEGIN
    p_request.body := p_request.body||'<'||p_name||' xsi:type="'||
    p_type||'">'||p_value||'</'||p_name||'>';
    DBMS_OUTPUT.PUT_LINE ( 'p_request.body = ' || p_request.body );
    END;
    --PROCEDURE add_parameter(p_request    IN OUT NOCOPY  t_request,
    -- p_name IN VARCHAR2,
    -- p_type IN DATE,
    -- p_value IN VARCHAR2) AS
    --BEGIN
    -- p_request.body := p_request.body||'<'||p_name||' xsi:type="'||
    p_type||'">'||p_value||'</'||p_name||'>';
    --END;
    --PROCEDURE add_parameter(p_request    IN OUT NOCOPY  t_request,
    -- p_name IN VARCHAR2,
    -- p_type IN INTEGER,
    -- p_value IN VARCHAR2) AS
    --BEGIN
    -- p_request.body := p_request.body||'<'||p_name||' xsi:type="'||
    p_type||'">'||p_value||'</'||p_name||'>';
    --END;
    PROCEDURE generate_envelope(p_request IN OUT NOCOPY t_request,
    p_env IN OUT NOCOPY VARCHAR2) AS
    BEGIN
    p_env := '<'||p_request.envelope_tag||':Envelope xmlns:'||
    p_request.envelope_tag||'="http://schemas.xmlsoap.org/soap/envelope/"
    ' ||
    'xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/1999/XMLSchema">' ||
    '<'||p_request.envelope_tag||':Body>' ||
    '<'||p_request.method||' '||p_request.namespace||' '||
    p_request.envelope_tag||':encodingStyle="http://schemas.xmlsoap.org/
    soap/encoding/">' ||
    p_request.body ||
    '</'||p_request.method||'>' ||
    '</'||p_request.envelope_tag||':Body>' ||
    '</'||p_request.envelope_tag||':Envelope>';
    END;
    PROCEDURE show_envelope(p_env IN VARCHAR2) AS
    i PLS_INTEGER;
    l_len PLS_INTEGER;
    BEGIN
    i := 1; l_len := LENGTH(p_env);
    WHILE (i <= l_len) LOOP
    DBMS_OUTPUT.put_line(SUBSTR(p_env, i, 60));
    i := i + 60;
    END LOOP;
    END;
    PROCEDURE check_fault(p_response IN OUT NOCOPY t_response) AS
    l_fault_node XMLTYPE;
    l_fault_code VARCHAR2(256);
    l_fault_string VARCHAR2(32767);
    BEGIN
    dbms_output.put_line('midas8-1');
    l_fault_node := p_response.doc.extract('/'||
    p_response.envelope_tag||':Fault',
    'xmlns:'||
    p_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/
    envelope/');
    dbms_output.put_line('midas8-2');
    IF (l_fault_node IS NOT NULL) THEN
    dbms_output.put_line('midas8-3');
    l_fault_code := l_fault_node.extract('/'||
    p_response.envelope_tag||':Fault/faultcode/child::text()',
    'xmlns:'||
    p_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/
    envelope/').getstringval();
    dbms_output.put_line('midas8-4');
    l_fault_string := l_fault_node.extract('/'||
    p_response.envelope_tag||':Fault/faultstring/child::text()',
    'xmlns:'||
    p_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/
    envelope/').getstringval();
    dbms_output.put_line('midas8-5');
    --RAISE_APPLICATION_ERROR(-20000, l_fault_code || ' - ' ||
    l_fault_string);
    END IF;
    END;
    FUNCTION invoke(p_request IN OUT NOCOPY t_request,
    p_url IN VARCHAR2,
    p_action IN VARCHAR2)
    RETURN t_response AS
    l_envelope VARCHAR2(32767);
    l_http_request UTL_HTTP.req;
    l_http_response UTL_HTTP.resp;
    l_response t_response;
    BEGIN
    dbms_output.put_line('Invoking request');
    dbms_output.put_line('url :'||p_url);
    dbms_output.put_line('action :'|| p_action);
    generate_envelope(p_request, l_envelope);
    show_envelope(l_envelope);
    l_http_request := UTL_HTTP.begin_request(p_url, 'POST','HTTP/1.0');
    dbms_output.put_line('midas1');
    IF g_proxy_username IS NOT NULL THEN
    DBMS_OUTPUT.PUT_LINE('PROXY USERNAME IS NOT NULL');
    UTL_HTTP.set_authentication(r => l_http_request,
    username => g_proxy_username,
    password => g_proxy_password,
    scheme => 'Basic',
    for_proxy => TRUE);
    END IF;
    UTL_HTTP.set_header(l_http_request, 'Content-Type', 'text/xml');
    UTL_HTTP.set_header(l_http_request, 'Content-Length',
    LENGTH(l_envelope));
    UTL_HTTP.set_header(l_http_request, 'SOAPAction', p_action);
    UTL_HTTP.write_text(l_http_request, l_envelope);
    dbms_output.put_line('midas2');
    l_http_response := UTL_HTTP.get_response(l_http_request);
    dbms_output.put_line('midas3');
    UTL_HTTP.read_text(l_http_response, l_envelope);
    dbms_output.put_line('midas4');
    UTL_HTTP.end_response(l_http_response);
    dbms_output.put_line('midas5');
    l_response.doc := XMLTYPE.createxml(l_envelope);
    dbms_output.put_line('midas6');
    l_response.envelope_tag := p_request.envelope_tag;
    dbms_output.put_line('midas7');
    l_response.doc := l_response.doc.extract('/'||
    l_response.envelope_tag||':Envelope/'||l_response.envelope_tag||':Body/
    child::node()',
    'xmlns:'||
    l_response.envelope_tag||'="http://schemas.xmlsoap.org/soap/
    envelope/"');
    -- show_envelope(l_response.doc.getstringval());
    dbms_output.put_line('midas8');
    check_fault(l_response);
    dbms_output.put_line('midas9');
    RETURN l_response;
    END;
    FUNCTION get_return_value(p_response IN OUT NOCOPY t_response,
    p_name IN VARCHAR2,
    p_namespace IN VARCHAR2)
    RETURN VARCHAR2 AS
    BEGIN
    -- RETURN p_response.doc.extract('//'||p_name||'/
    child::text()',p_namespace).getstringval();
    dbms_output.put_line('function');
    dbms_output.put_line(p_name);
    DBMS_OUTPUT.PUT_LINE (p_response.doc.extract('//'||p_name||'/
    child::text()', p_namespace).getstringval());
    RETURN p_response.doc.extract('//'||p_name||'/child::text()',
    p_namespace).getstringval();
    END;
    END SOAP_API_PKG;
    Any help greatly appreciated!!

    Hello,
    I have not looked in detail to you code but I would like to point out that Oracle provides utilities to call Web Services from the database, using a DB package and/or Java in the DB.
    Have you looked to the documentation about:
    - Developing a Web Service Client in the Database
    regards
    Tugdual Grall

  • Error 504 DNS look up failed while calling web services using XML

    Hi, I am trying to call web service from Oracle using XML.
    Everything seems to be in place but im getting an error "The webserver for <My End URL> reported that an error occurred while trying to access the website. Please click here to return to the previous page."
    If I directly access the end url from my browser its accessible and seems to work fine.
    The http response receiveed is mentioned below:
    Status code: 403
    Reason phrase: Forbidden
    <html>
    <head>
    <title>504 DNS look up failed</title>
    </head>
    <body>
    <font size=2><table width="100%"><tr><td bgcolor=#3300cc align="center" colspan=2>504 DNS look up failed</td></tr></table><br><br>The webserver for 'My End URL' reported that an error occurred while trying to access the website. Please click <u>here</u> to return to the previous page.<br><br><hr></font></body>
    </html>
    Im using Oracle 9i
    Please help
    Edited by: 927814 on Apr 15, 2012 11:41 PM
    Edited by: 927814 on Apr 15, 2012 11:46 PM

    Without far greater details as to what you are doing, what you have installed, and what you have tried, not much can be offered. All that I can gather from the information you provided is that the server name you are trying to contact either is not responding or is invalid. If you have Forms installed on your local machine (for example using Developer Suite), try using localhost rather than the hostname. For example, http://localhost:port/forms/frmservlet?form=yourform
    http://www.checkupdown.com/status/E504.html

  • Calling Web Service using utl_http; Parameters not being recognized by ws

    Hi All,
    I have set-up appropriate function & packages based on this article:
    Calling Web Services from PL/SQL in the Oracle9i Database -
    http://www.oracle.com/technology/tech/webservices/htdocs/samples/dbwebservice/DBWebServices_PLSQL.html
    I am able to consume my sample web service using the above, but my web service doesn't see any parameters that I'm passing.
    Any ideas? I'm using Oracle 10g calling a .Net 1.1 web service
    Thanks,
    Robert

    Hello,
    I am not able to access the link you posted about calling a web service. Could please share your code again ?
    Thanks in advance for your help...
    Lionel

  • How to access PL/SQL Web Services using java

    New to Webservices. Created PL/SQL Web Service using JDeveloper. Vendor is not sure how to access it using java. Can anyone please help to point in the right direction or provide some sample ?

    So if I'm correct you have already exposed a PL/SQL procedure or function as web service?
    In that case you can generate a proxy (client) for the generated web service using JDeveloper. It will generate Java code which invokes the web service.
    See the wizard in JDeveloper, it should be in the same category as the create PL/SQL web service wizard.
    Regards, Ronald

  • Service Instance remains active when calling Web Service using WCF-BasicHttp binding

    I am trying to call a web service using ESB ToolKit using a dynamic send port. The message went through all the pipeline components successfully. However, after the message is picked up by the WCF adapter, the service instance remains in "Active"
    status, and then eventually it dehydrates itself. There's no error in the event log at all. Have anyone seen this problem before? If so, what is the solution?
    I tried using a static send port with exactly the same configuration and the message reaches the web service successfully and got the response back.
    Please note the web service is RPC-Style web service, not sure if it makes a difference.
    Here is the configuration for the static send port
    <Address>http://myserver:8088/mockLoadDataBinding</Address><TransportType Name="WCF-BasicHttp" Capabilities="899" ConfigurationClsid="467c1a52-373f-4f09-9008-27af6b985f14" />
    <TransportTypeData>
    <CustomProps>
    <InboundNodeEncoding vt="8">String</InboundNodeEncoding>
    <MessageEncoding vt="8">Text</MessageEncoding>
    <ServiceCertificate vt="8" />
    <InboundBodyPathExpression vt="8">//*[local-name()='return']/node() | //*[local-name()='SecurityException']</InboundBodyPathExpression>
    <OutboundBodyLocation vt="8">UseTemplate</OutboundBodyLocation>
    <StaticAction vt="8" />
    <InboundBodyLocation vt="8">UseBodyPath</InboundBodyLocation>
    <ProxyAddress vt="8" />
    <MaxReceivedMessageSize vt="3">65536</MaxReceivedMessageSize>
    <ClientCertificate vt="8" />
    <AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
    <ProxyUserName vt="8" />
    <OutboundXmlTemplate vt="8">&lt;web:loadData soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:web="http://www.company.com/webservices" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;&lt;input xsi:type="xsd:string"&gt;&lt;bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="string"/&gt;&lt;/input&gt;&lt;/web:loadData&gt;</OutboundXmlTemplate>
    <TextEncoding vt="8">utf-8</TextEncoding>
    <PropagateFaultMessage vt="11">-1</PropagateFaultMessage>
    <SecurityMode vt="8">None</SecurityMode>
    <ProxyToUse vt="8">Default</ProxyToUse>
    <TransportClientCredentialType vt="8">None</TransportClientCredentialType>
    <OpenTimeout vt="8">00:01:00</OpenTimeout>
    <UseAcsAuthentication vt="11">0</UseAcsAuthentication>
    <MessageClientCredentialType vt="8">UserName</MessageClientCredentialType>
    <UseSSO vt="11">0</UseSSO>
    <CloseTimeout vt="8">00:01:00</CloseTimeout>
    <SendTimeout vt="8">00:01:00</SendTimeout>
    </CustomProps>
    </TransportTypeData>
    here is the configuration for the dynamic send port (using BRE Resolver)
    Set Endpoint Outbound TransportType to WCF-BasicHttp
    Set Endpoint Outbound TransportLocation to http://myserver:8088/mockLoadDataBinding
    Set Endpoint Message Exchange Pattern to Solicit-Response
    Set EndPoint WCF Action to <empty string>
    Set Endpoint Config to InboundNodeEncoding=String&amp;MessageEncoding=Text&amp;InboundBodyPathExpression=//*[local-name()='return']/node() | //*[local-name()='SecurityException']&amp;OutboundBodyLocation=UseTemplate&amp;StaticAction=&amp;InboundBodyLocation=UseBodyPath&amp;MaxReceivedMessageSize=65536&amp;AlgorithmSuite=Basic256&amp;OutboundXmlTemplate=&lt;web:loadData 
    soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:web="http://www.company.com/webservices" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;&lt;input xsi:type="xsd:string"&gt;&lt;bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007"
    encoding="string"/&gt;&lt;/input&gt;&lt;/web:loadData&gt;&amp;TextEncoding=utf-8&amp;PropagateFaultMessage vt="11">-1&amp;SecurityMode=None&amp;ProxyToUse=Default&amp;TransportClientCredentialType=None&amp;OpenTimeout=00:01:00&amp;UseAcsAuthentication=False&amp;MessageClientCredentialType=UserName&amp;UseSSO=False&amp;CloseTimeout=00:01:00&amp;SendTimeout=00:01:00
    Set Endpoint Target Namespace to
    http://www.company.com/webservices

    Thanks Birdsven,
    I updated the Resolver policy to as follows, and still I am getting the same result.
    <then>
    <function>
    <vocabularylink uri="95dced57-5e9b-4dbe-9cd8-4b166853dd8a" element="4ad331d0-820c-41cb-a98e-7e1f5a9d5360" />
    <classmember member="set_TransportType" sideeffects="true">
    <classref ref="Resolution" />
    <argument>
    <constant>
    <string>WCF-BasicHttp</string>
    </constant>
    </argument>
    </classmember>
    </function>
    <function>
    <vocabularylink uri="95dced57-5e9b-4dbe-9cd8-4b166853dd8a" element="20652bdd-c1f2-4b75-9e6b-7e20af98e66d" />
    <classmember member="set_MessageExchangePattern" sideeffects="true">
    <classref ref="Resolution" />
    <argument>
    <constant>
    <string>Solicit-Response</string>
    </constant>
    </argument>
    </classmember>
    </function>
    <function>
    <vocabularylink uri="95dced57-5e9b-4dbe-9cd8-4b166853dd8a" element="9357b8ea-3663-4625-9681-a2fc2f423911" />
    <classmember member="set_TransportLocation" sideeffects="true">
    <classref ref="Resolution" />
    <argument>
    <constant>
    <string>http://myservice.com:8089/loadDataService</string>
    </constant>
    </argument>
    </classmember>
    </function>
    <function>
    <vocabularylink uri="95dced57-5e9b-4dbe-9cd8-4b166853dd8a" element="9c97e7a0-d119-4b0d-8e39-2b281ae6ef8d" />
    <classmember member="set_Action" sideeffects="true">
    <classref ref="Resolution" />
    <argument>
    <constant>
    <string>{loadData}</string>
    </constant>
    </argument>
    </classmember>
    </function>
    <function>
    <vocabularylink uri="95dced57-5e9b-4dbe-9cd8-4b166853dd8a" element="2829f1b7-09c0-4396-b82e-23fd65d8439c" />
    <classmember member="set_EndpointConfig" sideeffects="true">
    <classref ref="Resolution" />
    <argument>
    <constant>
    <string>InboundNodeEncoding=String&amp;MessageEncoding=Text&amp;ServiceCertificate=&amp;InboundBodyPathExpression=//*[local-name()='return']/node() | //*[local-name()='SecurityException']&amp;OutboundBodyLocation=UseTemplate&amp;StaticAction=&amp;InboundBodyLocation=UseBodyPath&amp;ProxyAddress=&amp;MaxReceivedMessageSize=65536&amp;ClientCertificate=&amp;AlgorithmSuite=Basic256&amp;ProxyUserName=&amp;OutboundXmlTemplate=&lt;web:loadData soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:web="http://www.mycompany.com/webservices" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;&lt;input xsi:type="xsd:string"&gt;&lt;bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="string"/&gt;&lt;/input&gt;&lt;/web:loadData&gt;&amp;TextEncoding=utf-8&amp;PropagateFaultMessage=True&amp;SecurityMode=None&amp;ProxyToUse=Default&amp;TransportClientCredentialType=None&amp;OpenTimeout=00:01:00&amp;UseAcsAuthentication=False&amp;MessageClientCredentialType=UserName&amp;UseSSO=False&amp;CloseTimeout=00:01:00&amp;SendTimeout=00:01:00</string>
    </constant>
    </argument>
    </classmember>
    </function>
    <function>
    <vocabularylink uri="95dced57-5e9b-4dbe-9cd8-4b166853dd8a" element="54624479-caea-4228-86b9-fbe188a8c64d" />
    <classmember member="set_TargetNamespace" sideeffects="true">
    <classref ref="Resolution" />
    <argument>
    <constant>
    <string>http://www.mycompany.com/webservices</string>
    </constant>
    </argument>
    </classmember>
    </function>
    </then>

Maybe you are looking for