Web Services with PL/SQL -- Where to get files

The document on how to make web services for PL/SQL stored procedures references serice-config.xml and client-config.xml, but neither of these files are in the links references by the document.
Where do I find those files?
James

The service-config.xml and client-config.xml are config files used by the Webservices assembler, which generates webservices from PL/SQL. JPublisher is used under the hood.
However, the 10.1.3 assembler may run without service-config.xml and client-config.xml. If you can run the build.xml file for the demo, then you are fine.

Similar Messages

  • Calling BI Publisher Web Service from pl/sql

    I am trying to call the BI publisher web service from pl/sql.
    I get the following response back
    <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <soapenv:Fault>
    <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Client.NoSOAPAction</faultcode>
    <faultstring>no SOAPAction header!</faultstring>
    <detail>
    <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">my-obiee</ns2:hostname>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>
    The bit that concerns me is
    <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Client.NoSOAPAction</faultcode>
    <faultstring>no SOAPAction header!</faultstring>
    The code that I used to call this is
    DECLARE
    req utl_http.req;
    resp utl_http.resp;
    value VARCHAR2(1024);
    p_data_type varchar2(4000):= 'application/soap+xml;';
    p_data_in VARCHAR2(3000) :=
    '<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pub="http://xmlns.oracle.com/oxp/service/PublicReportService">
    <soapenv:Body>
    <pub:scheduleReport xmlns:pub="http://xmlns.oracle.com/oxp/service/PublicReportService">
    <scheduleRequest>
    <deliveryRequest>
    <ftpOption>
    <ftpServerName>ino-ed-oel2.inoapps.com</ftpServerName>
    <ftpUserName>*******</ftpUserName>
    <ftpUserPassword>*****</ftpUserPassword>
    <remoteFile>/opt/UAT/db/tech_st/11.1.0/employees.pdf</remoteFile>
    </ftpOption>
    </deliveryRequest>
    <reportRequest>
    <attributeFormat>pdf</attributeFormat>
    <reportAbsolutePath>http://10.100.100.44:9704/xmlpserver/~administrator/XXXXXXX.xdo</reportAbsolutePath>
    <parameterNameValues>
    <item>
    <name>dname</name>
    <multiValuesAllowed>false</multiValuesAllowed>
    <values>
    <item>153002</item>
    </values>
    </item>
    </parameterNameValues>
    </reportRequest>
    <userJobName>BILL</userJobName>
    </scheduleRequest>
    <userID>******</userID>
    <password>******</password>
    </pub:scheduleReport>
    </soapenv:Body>
    </soapenv:Envelope>';
    BEGIN
    --utl_http.set_proxy('proxy.my-company.com', 'corp.my-company.com');
    req := utl_http.begin_request('http://10.100.100.44:9704/xmlpserver/services/PublicReportService?wsdl', 'POST');
    utl_http.set_header(req, 'content-type', p_data_type);
    utl_http.set_header(req, 'content-length', length(p_data_in));
    utl_http.set_header(req, 'User-Agent', 'Mozilla/4.0');
    utl_http.write_text(req, p_data_in);
    resp := utl_http.get_response(req);
    dbms_output.put_line ('status code: ' || resp .status_code);
    dbms_output.put_line ('reason phrase: ' || resp .reason_phrase);
    LOOP
    utl_http.read_line(resp, value, TRUE);
    dbms_output.put_line(value);
    END LOOP;
    utl_http.end_response(resp);
    EXCEPTION
    WHEN utl_http.end_of_body THEN
    utl_http.end_response(resp);
    END;
    Any help would be greatly received

    I had the same problem this morning. You need to add a line to the HTTP header to declare a value for SOAPAction.
    You can set this as an empty string, but for some reason it is required.
    Try adding this among your header declarations:
    utl_http.set_header(req, 'SOAPAction', '');

  • Urgent: Calling web service from PL/SQl fails with XML parsing

    Hi,
    I am trying to call a web service from PL/SQL (using SOAP protocol and UTL_HTTP built in Package).I am using Oracle 9i .I am calling from pl/sql block invoking web service method created in java.
    I am getting the below response object as a SOAP protocol, but i couldn't able to parse the SOAP.
    Could you please provide the values of FirstName, LastName and ErrorDescription
    declare
    request_env varchar2(32767);
    v_xml XMLTYPE;
    l_user_first_name varchar2(100);
    l_user_last_name varchar2(100);
    l_error_value varchar2(100);
    begin
    response_env:='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
    <UserInfoObjResponse xmlns:axis2ns1="http://www.test.com/services">
    <axis2ns1:FirstName >First Name Output</axis2ns1:FirstName>
    <axis2ns1:LastName>Last Name Output</axis2ns1:LastName>
    <axis2ns1:ErrorDescription />
    </UserInfoObjResponse>
    </soapenv:Body>
    </soapenv:Envelope>';
    dbms_output.put_line('Length of Request:' || length(response_env));
    dbms_output.put_line ('Request: ' || response_env);
    v_xml := XMLTYPE(response_env);
    -- SELECT EXTRACTVALUE(v_xml, '//UserInfoObjResponse/FirstName') INTO l_user_fast_name varchar2(100); FROM DUAL;
    dbms_output.put_line ('l_user_first_name: ' || l_user_first_name);
    dbms_output.put_line ('l_user_last_name : ' || l_user_last_name);
    dbms_output.put_line ('l_error_value: ' || l_error_value);
    end;

    In Oracle 9i:
    SQL> declare
      2    response_env varchar2(32767);
      3    v_xml XMLTYPE;
      4    l_user_first_name varchar2(100);
      5    l_user_last_name varchar2(100);
      6    l_error_value varchar2(100);
      7  begin
      8    response_env:='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
      9                     <soapenv:Body>
    10                       <UserInfoObjResponse xmlns:axis2ns1="http://www.test.com/services">
    11                         <axis2ns1:FirstName >First Name Output</axis2ns1:FirstName>
    12                         <axis2ns1:LastName>Last Name Output</axis2ns1:LastName>
    13                         <axis2ns1:ErrorDescription />
    14                       </UserInfoObjResponse>
    15                     </soapenv:Body>
    16                   </soapenv:Envelope>';
    17
    18    dbms_output.put_line('Length of Request:' || length(response_env));
    19  --  dbms_output.put_line ('Request: ' || response_env);
    20
    21    v_xml := XMLTYPE(response_env);
    22
    23    select EXTRACTVALUE(v_xml,'/*:Envelope/*:Body/*:UserInfoObjResponse/*:FirstName/text()') first_name,
    24           EXTRACTVALUE(v_xml,'/*:Envelope/*:Body/*:UserInfoObjResponse/*:LastName/text()') last_name,
    25           EXTRACTVALUE(v_xml,'/*:Envelope/*:Body/*:UserInfoObjResponse/*:ErrorDescription/text()') error_description
    26      into l_user_first_name, l_user_last_name, l_error_value
    27      from dual;
    28
    29    dbms_output.put_line ('l_user_first_name: ' || l_user_first_name);
    30    dbms_output.put_line ('l_user_last_name : ' || l_user_last_name);
    31    dbms_output.put_line ('l_error_value: ' || l_error_value);
    32  end;
    33  /
    Length of Request:530
    l_user_first_name: First Name Output
    l_user_last_name : Last Name Output
    l_error_value:
    PL/SQL procedure successfully completed.In Oracle 10g:
    SQL> declare
      2    response_env varchar2(32767);
      3    v_xml XMLTYPE;
      4    l_user_first_name varchar2(100);
      5    l_user_last_name varchar2(100);
      6    l_error_value varchar2(100);
      7  begin
      8    response_env:='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
      9                     <soapenv:Body>
    10                       <UserInfoObjResponse xmlns:axis2ns1="http://www.test.com/services">
    11                         <axis2ns1:FirstName >First Name Output</axis2ns1:FirstName>
    12                         <axis2ns1:LastName>Last Name Output</axis2ns1:LastName>
    13                         <axis2ns1:ErrorDescription />
    14                       </UserInfoObjResponse>
    15                     </soapenv:Body>
    16                   </soapenv:Envelope>';
    17
    18    dbms_output.put_line('Length of Request:' || length(response_env));
    19  --  dbms_output.put_line ('Request: ' || response_env);
    20
    21    v_xml := XMLTYPE(response_env);
    22
    23    select r.*
    24      into l_user_first_name, l_user_last_name, l_error_value
    25    from XMLTABLE('/' PASSING v_xml
    26                  COLUMNS
    27                  first_name varchar2(30) PATH '/*:Envelope/*:Body/*:UserInfoObjResponse/*:FirstName/text()',
    28                  last_name varchar2(30) PATH '/*:Envelope/*:Body/*:UserInfoObjResponse/*:LastName/text()',
    29                  error_description varchar2(30) PATH '/*:Envelope/*:Body/*:UserInfoObjResponse/*:ErrorDescrition/text()'
    30                  ) r;
    31
    32    dbms_output.put_line ('l_user_first_name: ' || l_user_first_name);
    33    dbms_output.put_line ('l_user_last_name : ' || l_user_last_name);
    34    dbms_output.put_line ('l_error_value: ' || l_error_value);
    35  end;
    36  /
    Length of Request:530
    l_user_first_name: First Name Output
    l_user_last_name : Last Name Output
    l_error_value:
    PL/SQL procedure successfully completed.Max
    http://oracleitalia.wordpress.com
    Edited by: Massimo Ruocchio on Feb 14, 2010 11:55 PM
    Added the first one.

  • How to invoke a Web Service from PL/SQL with Complex Type as  input.

    Hello,
    I am trying to invoke a web service from PL/SQL using the UTL_DBWS package.
    The web service expects a complex type as input (defined below):
    <xs:complexType name="MsgType">
    <xs:sequence>
    <xs:element name="sender" type="xs:string"/>
    <xs:element name="messageId" type="xs:string"/>
    <xs:element name="messageType" type="xs:string"/>
    <xs:element name="dateSent" type="xs:date"/>
    </xs:sequence>
    </xs:complexType>
    How to construct input to this in PL/SQL Procedure?
    Has any body tried this before?
    An exmaple will be helpful.
    Thanks

    Dear,
    I have read your article, it is useful for me. But I cannot Apply to my case. Please kindly help me. Thank you.
    When running, the error occurs:
    1:39:31 Execution failed: ORA-20000: soapenv:Server.userException - org.xml.sax.SAXParseException: Attribute name &quot;password&quot; associated with an element type &quot;user&quot; must be followed by the &apos; = &apos; character.
    My webservice Url: http://abc.com.vn:81/axis/ABC_WS_TEST.jws?wsdl
    I make PL/SQL (similiar as your example)
    FUNCTION INVOKESENDMT
    RETURN VARCHAR2
    AS
    l_request soap_api.t_request;
    l_response soap_api.t_response;
    l_return VARCHAR2(32767);
    l_url VARCHAR2(32767);
    l_namespace VARCHAR2(32767);
    l_method VARCHAR2(32767);
    l_soap_action VARCHAR2(32767);
    l_result_name VARCHAR2(32767);
    p_zipcode VARCHAR2(160);
    BEGIN
    --p_zipcode:='''TEST'' ; ''TEST'';''84912187098'';''84912187098'';''0'';''8118'';''1'';''000001'';''ThuNghiem'';''''';
    p_zipcode:='TEST';
    -- 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 => 'TEST',
    -- p_password => 'TEST');
    l_url := 'http://abc.com.vn:81/axis/ABC_WS_TEST.jws';
    l_namespace := 'xmlns="' || l_url || '"';
    l_method := 'sendMT';
    l_soap_action := l_url || '#sendMT';
    l_result_name := 'sendMTResponse';
    l_request := soap_api.new_request(p_method => l_method,
    p_namespace => l_namespace);
    soap_api.add_parameter(p_request => l_request,
    p_name => 'user password sender receiver chargedflag servicenumber messagetype messageid textcontent binarycontent',
    p_type => 'xsd:string',
    p_value => p_zipcode);
    l_response := soap_api.invoke(p_request => l_request,
    p_url => l_url,
    p_action => l_soap_action);
    l_return := soap_api.get_return_value(p_response => l_response,
    p_name => l_result_name,
    p_namespace => l_namespace);
    RETURN l_return;
    END;

  • Creating Web service for PL/SQL Procedure with Complex Data Types

    I need to created web service for PL/SQL Procedure with Complex Data types like table of records as parameters, how do we map the pl/sql table type parameters with web service, how to go about these?

    Hello,
    When you are creating a service from a Stored Procedure, the OracleAS WS tools will create necessary Java and PL wrapper code to handle the complex types (table of record) properly and make them compatible with XML format for SOAP messages.
    So what you should do is to use JDeveloper or WSA command line, to create a service from your store procedure and you will see that most of the work will be done for you.
    You can find more information in the:
    - Developing Web Services that Expose Database Resources
    chapter of the Web Service Developer's guide.
    Regards
    Tugdual Grall

  • New to Web Services - need to call a HTTPS web service from PL/SQL

    I am new to Web Services and need to call HTTPS web service from PL/SQL program. I am using 10g Database.
    I have been reading there are 2 options -
    1. UTL_HTTP - with this package its possible to call HTTPS web services
    2. UTL_DBWS
    Questions -
    1. Is it possible to call a HTTPS web service using UTL_DBWS ? I have not been able to find any information on it.
    2. Can someone point me to UTL_HTTP and UTL_DBWS examples calling a HTTPS web service ?
    3. The HTTPS web service that I need to call needs username/password to connect - how will I incorporate this in the pl/sql code ?
    Appreciate the help.
    Cheers,
    newWebServicesUser

    Hi,
    1. UTL_DBWS not work for https from what I understand
    2. Here is a sample example:
    [http://www.oracle-base.com/articles/9i/ConsumingWebServices9i.php#]
    Be careful, you must change http/1.0 IN 1.1 inside package SOAP_API.
    Here is an example for a prime number where the SOAP message is already construct:
    CREATE OR REPLACE procedure test_ws_2
    IS
    http_req utl_http.req;
    http_resp utl_http.resp;
    request_env varchar2(32767);
    response_env varchar2(32767);
    begin
    -- Set proxy details if no direct net connection.
    UTL_HTTP.set_proxy('http://<USER>:<PASS>@10.0.2.21:8070', NULL);
    UTL_HTTP.set_persistent_conn_support(TRUE);
    request_env:='<?xml version="1.0" encoding="utf-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">'||
    '<SOAP-ENV:Body><GetPrimeNumbers xmlns="http://microsoft.com/webservices/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">'||
    '<max xsi:type="xsd:int">10</max>'||
    '</GetPrimeNumbers></SOAP-ENV:Body></SOAP-ENV:Envelope>';
    dbms_output.put_line('Length of Request:' || length(request_env));
    dbms_output.put_line ('Request: ' || request_env);
    http_req := utl_http.begin_request('http://www50.brinkster.com/vbfacileinpt/np.asmx','POST', utl_http.HTTP_VERSION_1_1);
    utl_http.set_header(http_req, 'Content-Type', 'text/xml; charset=utf-8');
    utl_http.set_header(http_req, 'Content-Length', length(request_env));
    utl_http.set_header(http_req, 'SOAPAction', '"http://microsoft.com/webservices/GetPrimeNumbers"');
    utl_http.write_text(http_req, request_env);
    dbms_output.put_line('');
    http_resp := utl_http.get_response(http_req);
    dbms_output.put_line('Response Received');
    dbms_output.put_line('--------------------------');
    dbms_output.put_line ( 'Status code: ' || http_resp.status_code );
    dbms_output.put_line ( 'Reason phrase: ' || http_resp.reason_phrase );
    utl_http.read_text(http_resp, response_env);
    dbms_output.put_line('Response: ');
    dbms_output.put_line(response_env);
    utl_http.end_response(http_resp);
    end test_ws_2;
    Otherwice for testing url, i recommand you to use that function: Re: Error using UTL_HTTP over HTTPS
    it's a verry helpful function when you have an error.
    wrote:
    When testing using UTL_HTTP, you MUST ensure that you open a new session after importing the SSL certificates into your Wallet,
    as I've learned (the hard way) that existing sessions point to the wallet contents that were present when the session was opened.
    If you don't realise/know this, it can cause a lot of additional frustration during testing, when you keep getting the ORA-29024 exception AFTER
    you've imported the SSL certificates................. ;) 3. i think you can use that after the begin_request but not sure :
    UTL_HTTP.set_authentication(r => http_req,
    username => ,
    password => ,
    scheme => ,
    for_proxy => );
    Edited by: Malebodja on Oct 22, 2009 6:53 AM
    Edited by: Malebodja on Oct 22, 2009 6:55 AM

  • Calling Reporting Services Web Service with jQuery possible?

    Hi,
    is it possible to call the Reporting Services Web Service with jQuery? If yes, can someone post me a small example?
    Background:
    My plan is to create a html with a form which is also uploaded then into the reportserver. I open this html later by clicking a link in a report (with gotoURL open.window). The report opens the html inclusive the overtaken of some additional parameters
    (reportname, reportdescription). These parameters I will use in the html-form as defaultvalues for the corresponding input-text-fields. Now the user can make some changes (i.e. the decription). With a click on a button I will send the new description to
    the Reporting Services Web Service by using the SetProperties method, closing the html-window and reload the report. Important is that I want to upload the html also into the reportserver itself.
    I have already found how to consume a web service via jQuery but with the Reporting Services Web Service I did not get it running in my tests.
    I have referenced to the following jQuery.js: http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
    Here you can see my tests I made with the results:
    $.ajax({
    type: 'POST',
    url: 'http://<..>/ReportServer/ReportService2010.asmx/ListChildren',
    data: {'ItemPath':'/','Recursive':false},
    complete: function(xData, status) {
    $('p').html($(xData.responseXML).text()); // result
    $("#divStatus").text( status ); // status }
    I got a NULL response with Status success. But where are the items?
    Another test which should response only one value was that:
    $.ajax({
    type: "POST",
    contentType: "text/xml; charset=utf-8",
    url: "http://<..>/ReportServer/ReportService2010.asmx/GetItemType",
    data: {"Item":"/Development"}, // Development is a Folder in my Reportserver-Root
    dataType: "xml",
    success: function (msg) {
    $("#divResult").html(msg.responseXML);
    error: function (data, status, error) {
    $("#divResult").html("WebSerivce unreachable<br> <br>" + data.responseXML + "<br> <br>(" + error + ")");
    Here I got an [object Error]
    And here my last test:
    var soapMessage = '<?xml version="1.0" encoding="utf-8"?>\
    <soap:Envelope \
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" \
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">\
    <soap:Body>\
    <GetItemType xmlns="http://www.microsoft.com/sql/ReportingServer">\
    <ItemPath>/Development</ItemPath>\
    </GetItemType>\
    </soap:Body>\
    </soap:Envelope>';
    $.ajax({
    type: "POST",
    contentType: "text/xml; charset=utf-8",
    url: http://<..>/ReportServer/ReportService2010.asmx?wsdl,
    data: soapMessage,
    dataType: "xml",
    success: processSuccess,
    error: processError
    function processSuccess(data, status, req) {
    if (status == "success")
    $("#response").text($(req.responseXML).find("Type").text());
    function processError(data, status, req) {
    alert(req.responseText + " " + status);
    Here I got an "Undefined error"
    Can anyone help me?
    Thanks
    René Illner

    Hi Rene,
    I have one vbscript class to call web services. May be if you need you can use it.
         dim ws
         set ws = new webservice
         ws.url = "http://servername/ReportServer/ReportService2010.asmx"
         ws.method = "MethodName"
         ws.parameters.Add "Parameter1", "Param1 Desc.."
         ws.parameters.Add "Parameter2","[email protected].."
         ws.execute
         set ws = nothing
    '------web service calling class
    class WebService
      public Url
      public Method
      public Response
      public Parameters
      public function execute()
        dim xmlhttp
        Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
        xmlhttp.open "POST", Url & "/" & Method, false
        xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        xmlhttp.send Parameters.toString
        response = xmlhttp.responseText
        set xmlhttp = nothing
      end function
      Private Sub Class_Initialize()
        Set Parameters = new wsParameters
      End Sub
      Private Sub Class_Terminate()
        Set Parameters = Nothing
      End Sub
    End class
    class wsParameters
      public mCol
      public function toString()
        dim nItem
        dim buffer
        buffer = ""
        for nItem = 1 to Count
          buffer = buffer & Item(nItem).toString & "&"
        next
        if right(buffer,1)="&" then
          buffer = left(buffer,len(buffer)-1)
        end if
        toString = buffer
      end function
      public sub Clear
        set mcol = nothing
        Set mCol = CreateObject("Scripting.Dictionary")
      end sub
      public sub Add(pKey,pValue)
        dim newParameter
        set newParameter = new wsParameter
        newParameter.Key = pKey
        newParameter.Value = pValue
        mCol.Add mCol.count+1, newParameter
        set newParameter = nothing
      end sub
      public function Item(nKey)
        set Item=mCol.Item(nKey)
      end function
      public function ExistsXKey(pKey)
        dim nItem
        for nItem = 1 to mcol.count
          if mCol.Item(nItem).key = pKey then
            ExistsXKeyword = true
            exit for
          end if
        next
      end function
      public sub Remove(nKey)
        mCol.Remove(nKey)
      end sub
      public function Count()
        Count=mCol.count
      end function
      Private Sub Class_Initialize()
        Set mCol = CreateObject("Scripting.Dictionary")
      End Sub
      Private Sub Class_Terminate()
        Set mCol = Nothing
      End Sub
    end class
    class wsParameter
       public Key
       public Value
       public function toString()
         toString = Key & "=" & Value
       end function
    end class
    Regards, RSingh

  • Accessing external web service with non-constant URL

    Hello, all
    I am looking in the documentation on accessing external web services, but either I am looking in the wrong place, or the documentatoin is lacking info.
    My clients have several web services in the local network (regular services, not DB-based), the have the same interface, but different URL's.
    Versions of the DB are 11, 12, and 16.
    First of all, I do not see in the specs an option for a non-hardcoded URL. The logic says that this has to be possible, but I cannot find it.
    Second, I need to see an example of accessing an XML or JSon based service, I cannot find it in the specs either.
    Can anyone point me to a document with examples?
    Thank you
    Arcady

    The following will call a web service with whatever URL you pass in as the argument "myurl".  I think that is what you are looking for.
    CREATE PROCEDURE cli_test2( myurl LONG VARCHAR )
    RESULT( httpheaders long varchar, httpvalues long varchars
    URL '!myurl'
    To deal with the resulting data in XML, use the OPENXML() function.
    eg. To turn an XML list of employees that looks like this:
    <root>
    <row EmployeeID="102" Surname="Whitney" GivenName="Fran" StartDate="1984-08-28"/>
    </root>
    into a table of results, you would do this (where xmlgetemplist() is the web service call):
    CREATE OR REPLACE PROCEDURE xmlgetemplist() RESULT( httpheader long varchar, httpbody long varchar)
    URL 'http://localhost/demo/xmlEmployeeList'
    TYPE 'HTTP:GET';
    create variable res long varchar;
    -- call the web service
    select httpbody into res from xmlgetemplist() where httpheader = 'Body'
    -- extract the XML elements into a SQL result set
    select * from openXML( res, '/root/row' ) WITH ( EmployeeID INT '@EmployeeID',
           GivenName    CHAR(20) '@GivenName',
           Surname      CHAR(20) '@Surname',
           PhoneNumber  CHAR(10) '@Phone');
    To deal with the resulting data in JSON, use the sp_parse_json() procedure.
    eg.
    To turn a JSON formatted list of employees that looks like this:
    "EmployeeID": 102,
    "Surname": "Whitney",
    "GivenName": "Fran",
    "StartDate": "1984-08-28",
    "TerminationDate": null
    into a table of results, you would do this (where jsongetemplist() is the web service call):
    CREATE OR REPLACE PROCEDURE jsongetemplist() RESULT( httpheader long varchar, httpbody long varchar)
    URL 'http://localhost/demo/jsonEmployeeList'
    TYPE 'HTTP:GET';
    create variable foo long varchar;
    --call the webservice
    select httpbody into foo from jsongetemplist() where httpheader = 'Body';
    --turn the json result into a structured array of data
    -- this step is required because of less structured nature of JSON
    call sp_parse_json( 'output_array', foo);
    --extract the JSON elements from the output array into a SQL result set
    SELECT  output_array[[row_num]].EmployeeID as EmployeeID,
                   output_array[[row_num]].SurName as SurName,
                   output_array[[row_num]].GivenName as GivenName,
                   output_array[[row_num]].StartDate as StartDate,
                   output_array[[row_num]].TerminationDate as EndDate
    FROM sa_rowgenerator(1, CARDINALITY(output_array))
    Hope this helps,
    --Jason

  • Calling web services from PL/SQL

    Hi,
    We have a requirement where we need to call a web services from PL/SQL.
    I believe we have a PL/SQL API that allows you to consume external web services.
    I was looking for other possible options too to consume web Service from PL/SQL.
    Can any one suggest the other possible options , and which option is best to consume web service.
    Thanks
    AB

    AB,
    I didn't realize you cannot attach documents to your post. You will have to provide me with an email address that I can send the documents to. They are a little rough (ie not commented etc) but they do illustrate the point. The basic idea is to build up the payload of the soap envelope using pl/sql. Meaning as I loop through the cursor I use each record in the cursor to build an xml string. This string of xml becomes the payload of the soap message. This could also be done using xml functionality provided by the db meaning xmlelement, xmlforest etc. The issue I ran into was the size of the message. That is why I elected to build the xml message by string concatenation as I moved through the cursor.
    Ryan

  • Calling SharePoint Web Services from PL/SQL

    We are trying to call SharePoint Web Services with UTL_DBWS or UTL_HTTP. We are able to call some test web services, but when it comes to using SharePoint services, we keep getting 401 errors..even when we use set_authorization.
    Has anyone been able to use UTL_DBWS or UTL_HTTP to call SharePoint web services? If so, can you point us in the right direction?
    Thanks

    AB,
    I didn't realize you cannot attach documents to your post. You will have to provide me with an email address that I can send the documents to. They are a little rough (ie not commented etc) but they do illustrate the point. The basic idea is to build up the payload of the soap envelope using pl/sql. Meaning as I loop through the cursor I use each record in the cursor to build an xml string. This string of xml becomes the payload of the soap message. This could also be done using xml functionality provided by the db meaning xmlelement, xmlforest etc. The issue I ran into was the size of the message. That is why I elected to build the xml message by string concatenation as I moved through the cursor.
    Ryan

  • Error invoking SSL web service using pl sql UTL_HTTP

    Web Services Gurus,
    I am invoking a secure web service based on the following WSDL file from a pl/sql program using UTL_HTTP package.
    The web service is secure and prompts for authentication.
    The web services certificate is imported in Oracle Wallet on Database Server.
    I am listing the WSDL file, the pl/sql code and error message as follows -
    1. The WSDL file -
    <definitions
    name="Webservice"
    targetNamespace="http://webservice.airclic.com/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://webservice.airclic.com/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    >
    <types>
    <xs:schema targetNamespace="http://webservice.airclic.com/" version="1.0" xmlns:tns="http://webservice.airclic.com/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Exception" type="tns:Exception"/>
    <xs:element name="sendAuthenticationResponse" type="tns:sendAuthenticationResponse"/>
    <xs:element name="sendAuthenticationResponseResponse" type="tns:sendAuthenticationResponseResponse"/>
    <xs:complexType name="AuthenticationResponse">
    <xs:complexContent>
    <xs:extension base="tns:Response">
    <xs:sequence>
    <xs:element name="success" type="xs:boolean"/>
    <xs:element name="username" type="xs:string"/>
    <xs:element minOccurs="0" name="password" type="xs:string"/>
    <xs:element minOccurs="0" name="firstName" type="xs:string"/>
    <xs:element minOccurs="0" name="lastName" type="xs:string"/>
    <xs:element minOccurs="0" name="email" type="xs:string"/>
    <xs:element minOccurs="0" name="active" type="xs:boolean"/>
    <xs:element minOccurs="0" name="timeZone" type="xs:string"/>
    <xs:element minOccurs="0" name="group" type="xs:string"/>
    <xs:element minOccurs="0" name="role" type="xs:string"/>
    <xs:element minOccurs="0" name="errorCode" type="xs:string"/>
    <xs:element minOccurs="0" name="errorMessage" type="xs:string"/>
    </xs:sequence>
    </xs:extension>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="DispatchEvent"></xs:complexType>
    <xs:complexType name="sendAuthenticationResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="authenticationResponse" type="tns:AuthenticationResponse"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="sendAuthenticationResponseResponse">
    <xs:sequence/>
    </xs:complexType>
    <xs:simpleType name="status"></xs:simpleType>
    <xs:simpleType name="source"></xs:simpleType>
    <xs:simpleType name="eventType"></xs:simpleType>
    </xs:schema>
    </types>
    <message name="Webservice_sendAuthenticationResponse">
    <part name="sendAuthenticationResponse" element="tns:sendAuthenticationResponse"/>
    </message>
    <message name="Webservice_sendAuthenticationResponseResponse">
    <part name="sendAuthenticationResponseResponse" element="tns:sendAuthenticationResponseResponse"/>
    </message>
    <portType name="Webservice">
    <operation name="sendAuthenticationResponse" parameterOrder="sendAuthenticationResponse">
    <input message="tns:Webservice_sendAuthenticationResponse"/>
    <output message="tns:Webservice_sendAuthenticationResponseResponse"/>
    <fault name="Exception" message="tns:Exception"/>
    </operation>
    </portType>
    <binding name="WebserviceBinding" type="tns:Webservice">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="sendAuthenticationResponse">
    <soap:operation soapAction=""/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>
    <soap:body use="literal"/>
    </output>
    <fault name="Exception">
    <soap:fault name="Exception" use="literal"/>
    </fault>
    </operation>
    </binding>
    <service name="Webservice">
    <port name="WebservicePort" binding="tns:WebserviceBinding">
    <soap:address location="https://host.airclic.com:443/webservice/product/fieldservice/v1/Webservice"/>
    </port>
    </service>
    </definitions>
    2. The pl/sql code that calls the web service operation sendAuthenticationResponse
    procedure send_auth_response
    as
    soap_request varchar2(30000);
    soap_respond varchar2(30000);
    http_req utl_http.req;
    http_resp utl_http.resp;
    resp XMLType;
    i integer;
    begin
    -- initiate wallet for AirClic certificate
    dbms_output.put_line ('1');
    utl_http.set_wallet('file:/etc/oracle/wallet','<wallet password>');
    -- create soap request
    dbms_output.put_line ('2');
    soap_request:= '<?xml version = "1.0" encoding = "UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <SOAP-ENV:Body>
    <ns1:sendAuthenticationResponse xmlns="https://host.airclic.com:443/webservice/product/fieldservice/v1/Webservice" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <success xsi:type="xsd:boolean">true</success>
    <username xsi:type="xsd:string">changlanih</username>
    <password xsi:type="xsd:string">abcd1234</password>
    <firstName xsi:type="xsd:string">hero</firstName>
    <lastName xsi:type="xsd:string">changlani</lastName>
    <email xsi:type="xsd:string">[email protected]</email>
    <active xsi:type="xsd:boolean">true</active>
    <timeZone xsi:type="xsd:string">eastern</timeZone>
    <group xsi:type="xsd:string">Northeast</group>
    <role xsi:type="xsd:string">Service Manager</role>
    <errorCode xsi:type="xsd:string"></errorCode>
    <errorMessage xsi:type="xsd:string"></errorMessage>
    </ns1:sendAuthenticationResponse>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>';
    -- request that exceptions are raised for error Status Codes
    dbms_output.put_line ('3');
    utl_http.set_response_error_check (true);
    -- allow testing for exceptions like UTL_HTTP.http_server_error
    dbms_output.put_line ('4');
    utl_http.set_detailed_excp_support (true);
    --utl_http.set_transfer_timeout (ln_time_out);
    dbms_output.put_line ('5');
    utl_http.set_body_charset ('UTF-8');
    -- begin request
    dbms_output.put_line ('5.5');
    http_req:= utl_http.begin_request
    ('https://host.airclic.com:443/webservice/product/fieldservice/v1/Webservice/sendAuthenticationResponse', ------ is the url correct here ?
    'POST',
    'HTTP/1.1'
    dbms_output.put_line ('6');
    utl_http.set_authentication(http_req, '<username for webservice>', '<password for webservice user>');
    dbms_output.put_line ('7');
    utl_http.set_persistent_conn_support (http_req, false);
    dbms_output.put_line ('8');
    utl_http.set_header(http_req, 'Content-Type', 'text/xml'); -- since we are dealing with plain text in XML documents
    dbms_output.put_line ('9');
    utl_http.set_header(http_req, 'Content-Length', length(soap_request));
    dbms_output.put_line ('10');
    utl_http.set_header(http_req, 'SOAPAction', ''); -- required to specify this is a SOAP communication
    dbms_output.put_line ('11');
    utl_http.write_text(http_req, soap_request);
    dbms_output.put_line ('12');
    http_resp := utl_http.get_response(http_req);
    -- debug messages
    DBMS_OUTPUT.PUT_LINE('-------utl_http.get_response---------------------');
    DBMS_OUTPUT.PUT_LINE('http_resp.status_code is :'||http_resp.status_code );
    DBMS_OUTPUT.PUT_LINE('http_resp.reason_phrase is :'||http_resp.reason_phrase);
    DBMS_OUTPUT.PUT_LINE('http_resp.http_version is :'||http_resp.http_version);
    DBMS_OUTPUT.PUT_LINE('http_resp.private_hndl is :'||http_resp.private_hndl);
    DBMS_OUTPUT.PUT_LINE('-------utl_http.get_response----------------------');
    utl_http.read_text(http_resp, soap_respond);
    dbms_output.put_line ('13');
    utl_http.end_response(http_resp);
    dbms_output.put_line ('14');
    resp := XMLType.createXML(soap_respond);
    dbms_output.put_line ('15');
    resp := resp.extract('/soap:Envelop/soap:Body/child::node()',
    'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"');
    i:=0;
    dbms_output.put_line ('16');
    loop
    dbms_output.put_line(substr(soap_respond, 1 + i * 255, 250));
    i := i + 1;
    if (i * 250) > length(soap_respond) then
    exit;
    end if;
    end loop;
    exception
    when utl_http.request_failed then
    dbms_output.put_line('request failed: ' || utl_http.get_detailed_sqlerrm);
    when utl_http.http_server_error then
    dbms_output.put_line('server error: ' || utl_http.get_detailed_sqlerrm);
    when utl_http.http_client_error then
    dbms_output.put_line('client error: ' || utl_http.get_detailed_sqlerrm);
    when others then
    dbms_output.put_line(sqlerrm);
    end send_auth_response;
    3. Output when I run the send_auth_response procedure
    Connecting to the database cpdev.
    1
    2
    3
    4
    5
    5.5
    ORA-12560: TNS:protocol adapter error
    Process exited.
    Disconnecting from the database cpdev.
    Comments -
    The web service operation only has input message. The input message consists of a complex type as seen in WSDL.
    Questions -
    1. This is my first attempt in invoking a web service from pl/sql program. Is the code in SOAP body correct as mapped to the complex type in WSDL ?
    2. As seen from the dbms_out - the last message before ORA-12560 is 5.5, that means the call is erroring at following code line -
    http_req:= utl_http.begin_request ------ what am I doing wrong here ?
    3. The web service is SSL as seen from WSDLand needs a username/password for access - which is being performed by following code line -
    utl_http.set_authentication(http_req, '<username for webservice>', '<password for webservice user>'); ------- is that correct ?
    4. I am not using any proxy server - should I be using it ? When is it necessary to use proxy ?
    Appreciate any help.
    Thanx.

    Oracle is hosted by HOST A - this is where the pl/sql program resides.
    The Web Service being accessed by pl/sql program is hosted by HOST B and there are 4 firewalls in between.
    Oracle was not even able to establish connection to web services host.
    Escalated the issue with networking folks and they resolved the connectivity problem.
    Hope that helps.

  • How to create web services with complex objects as parameters

    Hi,
    Not sure if this is the right place, but...
    I'm using Netbeans 5.5 and trying to learn web services.
    Creating a simple web service with simple parameters like strings and integers is nice and easy. I'm now trying to take the next step, and create a web service with a more complex schema as a parameter.
    I've tried two approaches, and hit dead ends on both:
    (1) Define my complex schema as an xsd file, and then create a WSDL file. Creating the schema and saving it in my EFB project works fine; when I try to create a new WSDL file, the IDE gives me a button to import external schemas - which is where the problem is: the Browse simply won't find my newly created schema file.
    (2) Define a Java class (in this case, it's a fairly simple example containing a single ArrayList), and then use the IDE to generate a web service from Java. The IDE does this fine, but I now have no idea how to consume or test the web service - I don't know where to look for the WSDL that has presumably been generated, and I'm also a bit iffy over what answers to give the WSDL creator about port names etc.
    Ideally, I'd prefer to get approach 1 to work - can someone point me in the direction of a sensible tutorial for these things?
    (Happy to carry on using Netbeans 5.5 or to revert to Sun Studio Enterprise, which I was playing with before.)
    All help appreciated, Thanks

    - For NetBeans related questions, nbusers mailing list is more suited. It is often visited by NetBeans experts.
    http://www.netbeans.org/community/lists/top.html
    ...[email protected]
    The NetBeans users mailing list. General discussion of NetBeans use, this is the place to ask for help and to help others.... (There is a 'Subscribe' button next to the above that you can use to subscribe to the list).
    Can you try posting this question on nbusers list?
    - SJSE 8.1 is based on an older version of NB (NB5.0).
    You should definitely continue with NetBeans, since all development is now being done in NetBeans; all the major JSE modules have been moved to opensource at netbeans.org and are all being developed there. There are as yet no future plans to work on further releases for JSE.
    Please check out http://www.netbeans.org for more details.

  • SR: Calling Web Services from PL/SQL gives http 500 errors

    Hi, people from Oracle Support sent me to this forum.
    I'm trying to call the Calendar Web Services from PL/SQL using the utl_http package, but I'm getting http-500 errors.
    I'm using the example from http://www.oracle.com/technology/tech/webservices/htdocs/samples/dbwebservice/DBWebServices_PLSQL.html
    Here's the code
    procedure showHtml
    as
    req soap_rpc.request;
    resp soap_rpc.response;
    BEGIN
    req := soap_rpc.new_request('cwsl:NoOp',
    'xmlns:cwsl="http://www.oracle.com/WebServices/Calendaring/1.0/"');
    resp := soap_rpc.invoke(req,
    'http://nllx004.nl.oracle.com/ocws-bin/ocas.fcgi',
    dbms_output.put_line(resp.doc.getStringVal());
    END;
    Can anyone help?

    I am new to web services and am having trouble getting the utl_http.set_header call to work using pl/sql. listed below is the code.
    CREATE OR REPLACE PACKAGE BODY adm_iModules_test
    AS
    NAME: Admissions iModules testing program
    PURPOSE:
    Ver Date Author Description
    REVISIONS:
    1.0 01/04/08 Julie Michael 1. Created this package body.
    PROCEDURE adm_iModules_test_output
    IS
    --cursor to select data to populate output file
    CURSOR c_iModules_main
    IS
    SELECT DISTINCT spriden_id sprid_id,
                                  spriden_pidm sprid_pidm,
                                  spriden_last_name sprid_last,
    spriden_first_name sprid_first,
                                  spriden_MI sprid_mid,
    spriden_create_date sprid_create_date,
    spriden_activity_date sprid_activity_date,
                                  spbpers_pidm pers_pidm,
    spbpers_name_prefix prefix,
    spbpers_name_suffix suffix,
                                  spbpers_dead_ind deceased_ind,
                                  spbpers_dead_date deceased_date,
                                  spbpers_birth_date, --added birth date
                                  spbpers_sex, --added gender
                                  goremal_pidm emal_pidm,
    goremal_email_address email_address,
                                  saradap_pidm app_pidm,
                                  zzrimod_member_id imod_id,
                                  gobtpac_external_user user_id
    FROM spriden,
    spbpers,
    goremal,
                                  saradap,
                                  zzrimod,
                                  gobtpac
    WHERE spriden_pidm = spbpers_pidm
    AND spriden_change_ind IS NULL
    AND spriden_pidm = goremal_pidm
                             AND goremal_emal_code = 'PERS'
                             AND goremal_preferred_ind = 'Y'
                             AND spriden_pidm = saradap_pidm
                             AND spriden_pidm = 120116
                             AND spriden_pidm = gobtpac_pidm
                             AND spriden_pidm = zzrimod_pidm(+)
                             AND goremal_preferred_ind = 'Y'
                             AND saradap_term_code_entry in ('200810','200820','200830');
         v_record      VARCHAR2 (32000) := null;
         v_record_counter               NUMBER                    := 0;
    f_iModules_output_test UTL_FILE.file_type;
    f_iModules_filename_test VARCHAR2 (50) := 'Adm_iModules_Test.TXT';
    f_iModules_dir_test VARCHAR2 (100) := 'TMP';
         v_separator                    VARCHAR2 (50)          := ',';
         v_id                              VARCHAR2 (90)          := '';
         v_fname                         VARCHAR2 (40)          := '';
         v_lname                         VARCHAR2 (40)          := '';
         v_user                         VARCHAR2 (90)          := '';
         v_login                         VARCHAR2 (100)          := '';
         v_password                    VARCHAR2 (100)          := '';
    -- v_link                         VARCHAR2 (32767)     := 'http://imodules.com/Web%20Services/';
         --the below item 'http://admin.imodules.com - was https://admin.imodules.com
         v_link                         VARCHAR2 (32767)      := 'http://admin.imodules.com/ws_10/MemberQuery.asmx?WSDL';
         v_non_existing_ids          VARCHAR2 (100)          := '"false"';
         v_style                         VARCHAR2 (5)           := '"1"';
         v_imod_member_id               VARCHAR2 (100)      := '';
         v_spriden_first_name           VARCHAR2 (60)          := '';
         req                Utl_Http.req;           --for posting
         resp                Utl_Http.resp;          --for posting
         v_msg                VARCHAR2(80);          --for posting
         H_Name                VARCHAR2(255);          --for posting
         H_Value                VARCHAR2(1023);     --for posting
         v_data_xml                    VARCHAR2(10000);
         BEGIN
                   DBMS_OUTPUT.ENABLE(1000000);
              f_iModules_output_test := UTL_FILE.fopen (f_iModules_dir_test, f_iModules_filename_test, 'w',32767);
                   v_record := '';
                   --needed for posting
    --                Utl_http.set_proxy(proxy => 'xxx.yyy.com',
    --      no_proxy_domains => 'xxx.com');
                   req := Utl_Http.begin_request(url => v_link,
    method => 'POST');
    --                          FOR v_iModules2 IN c_iModules_main
    --                          LOOP     
    --                                    v_record_counter := v_record_counter + 1;
    --                          END LOOP;
                             -- v_record := 'DUQ'||','||v_record_counter||','||to_char(SYSDATE,'mm/dd/yyyy');
                             UTL_FILE.put_line (f_iModules_output_test, v_record, false);     
                                       v_record := null;
                                  FOR v_iModules IN c_iModules_main
                                  LOOP
                                            v_id := v_imodules.sprid_id;
                                            v_fname := v_imodules.sprid_first||'test';
                                            v_lname := v_imodules.sprid_last;     
                                            v_user := '"'||v_imodules.email_address||'"';
                                            v_imodules.imod_id := '29';
                                            v_imod_member_id := '"'||v_imodules.imod_id||'"';
                                            v_spriden_first_name := '"SPRIDEN_FIRST_NAME"';
                                            v_login := '"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"';
                                            v_password := '"xxxxxxxxxxxxxxxxxxxxxxxx"';
                                            v_record :='<?xml version="1.0" encoding="utf-8"?>'||
                                            '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'||' '||
                                            'xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'||
                                            '<soap:Body>'||'<Update xmlns:m='||v_link||'>'||'<AUTHENTICATION login='||v_login||' '||
                                            'password='||v_password||' '||'addNonExistingIDs='||v_non_existing_ids||' '||'style='||
                                            v_style||'/>'||'<MemberInformation ZZRIMOD_MEMBER_ID='||v_imod_member_id||'>'||
                                            '<SPRIDEN_FIRST_NAME>'||v_fname||'</SPRIDEN_FIRST_NAME>'||'</MemberInformation>'||'</Update>'||
                                            '</soap:Body></soap:Envelope>';
    --                                         v_record := v_record := v_record||'<Update xmlns:m='||v_link||'>'||'<AUTHENTICATION login='||v_user||'>'||' '||
    --                                                   'password='||v_password||' '||'addNonExistingIDs='||v_non_existing_ids||' '||'style='||
    --                                                   v_style||'/>'||'<MemberInformation ZZRIMOD_MEMBER_ID='||v_imod_member_id||' '||
    --                                                   'column='||'"SPRIDEN_FIRST_NAME"'||' '||'newValue='||v_fname||'/>'||'</Update>';
                                            dbms_output.put_line('code: '||v_record);
                                            --v_record := v_record||v_separator||v_id||v_separator||v_name||v_separator||v_email;
                                       --Http posting calls
                                            Utl_Http.set_header(r => req,
                                            name => 'Content-Type',
                                            value => 'text/xml');
                                       Utl_Http.set_header(r => req,
                                            name => 'Content-Length',
                                            value => to_char(length(v_record)) );
                                            --JAM 03/25/08 - added to accomodate the missing soap action error                           
                                            Utl_Http.set_header(r => req,
                                            name => 'SOAPAction',
                                            value => 'http://admin.imodules.com/ws_10/MemberQuery.asmx?WSDL');
                                            Utl_Http.set_header(r => req,
                                            name => 'MessageType',
                                            value => 'CALL');
    --                                    Utl_Http.set_authentication(r => req,
    --                                         username => 'zzz',
    --                                                   password => 'ppppp',
    --                               scheme => 'Basic',
    --                               for_proxy => FALSE);
                                       Utl_Http.write_text(r => req,
                                            data => v_record);     
                                            resp := Utl_Http.get_response(r => req,
                             return_info_response => TRUE);
                                            DBMS_OUTPUT.put_line('Status Code: ' || resp.status_code);
                                            DBMS_OUTPUT.put_line('Reason Phrase: ' || resp.reason_phrase);
                                            dbms_output.put_line('testing');
                                            FOR i IN 1 .. Utl_Http.get_header_count(r => resp)
                                            LOOP
                                            Utl_Http.get_header(r => resp,
                   n => i,
                   name => H_Name,
                   value => H_Value);
                                            --DBMS_OUTPUT.put_line( ... );
                                            END LOOP;
                                            BEGIN
                                            LOOP
                                            Utl_Http.read_text(r => resp, DATA => v_msg);
                                            DBMS_OUTPUT.put_line(v_msg);
                                            END LOOP;
                                                 EXCEPTION
                                                 WHEN Utl_Http.end_of_body THEN
                                                 NULL;
                                                 END;          
                                                 Utl_Http.end_response(r => resp);      
    --                                              EXCEPTION
    --                                              WHEN Utl_Http.request_failed THEN
    --                                                   DBMS_OUTPUT.put_line('Request failed: '||Utl_Http.Get_Detailed_Sqlerrm);
    --                                                   WHEN Utl_Http.http_server_error THEN
    --                                                   DBMS_OUTPUT.put_line('Http_Server_Error: '||Utl_Http.Get_Detailed_Sqlerrm);
    --                                                   WHEN Utl_Http.http_client_error THEN
    --                                                   DBMS_OUTPUT.put_line('Client Error: '||Utl_Http.Get_Detailed_Sqlerrm);
    --                                                   WHEN others THEN     
    --                                                   DBMS_OUTPUT.put_line('Others2: '||Utl_Http.Get_Detailed_Sqlerrm);     
    --                                                   Utl_Http.end_response(r => resp);     
    --                                              END;
                                            --End of Htp posting calls
                                            --UTL_FILE.put_line (f_iModules_output_test, v_record, false);
                                            --htp.p('<post>'||v_record||'</post>');
                                            END LOOP;
                                                 EXCEPTION
                                                 WHEN Utl_Http.request_failed THEN
                                                      DBMS_OUTPUT.put_line('Request failed: '||Utl_Http.Get_Detailed_Sqlerrm);
                                                      WHEN Utl_Http.http_server_error THEN
                                                      DBMS_OUTPUT.put_line('Http_Server_Error: '||Utl_Http.Get_Detailed_Sqlerrm);
                                                      WHEN Utl_Http.http_client_error THEN
                                                      DBMS_OUTPUT.put_line('Client Error: '||Utl_Http.Get_Detailed_Sqlerrm);
                                                      WHEN others THEN     
                                                      DBMS_OUTPUT.put_line('Others2: '||Utl_Http.Get_Detailed_Sqlerrm);     
                                                      Utl_Http.end_response(r => resp);     
                                                 END;
                        -- close output file
                   --UTL_FILE.fclose (f_iModules_output_test);
                             --COMMIT;
                             /*EXCEPTION
                        WHEN OTHERS
                        THEN
                   ROLLBACK;
                   DBMS_OUTPUT.put_line ('Other Exception:' || SQLERRM);
                             -- DBMS_OUTPUT.put_line ('Other Exception:' || Utl_Http.Get_Detailed_Sqlerrm);
                             --COMMIT; */
                             -- END adm_iModules_test_output;
                             END adm_iModules_test;
    Message was edited by:
    user627523

  • Web service with complex java type

    Hi,
    I create a web service method with String o with Array of Strings without problem. Now I nedd to create a ws that return a table, so I create a class like this:
    public class User {
         private String Name;
         private String.Surname;
         public void setName(String setName){
              Name= setName;
         public void setSurname(String setSurname){
              Surname=setSurname;
    In my ws class I use this object:
    public User[] getUser(String a){
              User[] user = new User[10];
              for (int i=0;i<10;i++){
                   User<i>.setName("aaa");
                   User<i>.setSurname("bbb");
              return user;
    When in WebService Perspective I try to create my ws in wizard mode I see method getUser but I can't check it
    Where is error?
    Thanks
    Andrea

    HI Andrea,
        I think with present netweaver developer studio , we can create Web services with end points as simple data types in java and the array of that simple data types.
        not sure whether it support our own custom developed classes as end points.
         just go through these links.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/f7/af60f2e04d0848888675a800623a81/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/f7/af60f2e04d0848888675a800623a81/frameset.htm
    from this we will get Restrictions for WS Endpoints.
                             Regards
                              Kishor Gopinathan

  • REST web service using PL/SQL

    Hello,
    I am trying to learn how a REST web service can be created using PL/SQL and how it can be used.
    I am using this as a starting point.
    Also, I am using the pre-build "Oracle Developer Days" setup for this (which means I have 11.2 version of oracle database installed).
    I have done all the steps mentioned in the above blog post but when I try to access the web service in browser, I get the
    "404 Not found - The requested URL /devtest/rest-demo/departments was not found on this server" message.
    Here is my DAD setup :
    SQL> declare
      l_name dbms_epg.varchar2_table;
      l_value dbms_epg.varchar2_table;
    begin
      DBMS_EPG.GET_ALL_DAD_ATTRIBUTES (dad_name => 'devtest', attr_names => l_name, attr_values => l_value);
      for i in l_name.first..l_name.last
      loop
        dbms_output.put_line(l_name(i)||' => '||l_value(i));
      end loop;
    end;
      2    3    4    5    6    7    8    9   10   11  database-username => HR1
    path-alias => rest-demo
    path-alias-procedure => rest_handler.handle_requestI have created the package and procedures as mentioned in that blog post
    SQL> desc hr1.rest_handler
    PROCEDURE HANDLE_REQUEST
    Argument Name                  Type                    In/Out Default?
    P_PATH                         VARCHAR2                INHave I missed something ?
    Any help will be appreciated.
    Thanks

    Probably an security issue, I guess. The article (http://ora-00001.blogspot.com/2009/07/creating-rest-web-service-with-plsql.html) mentioned is a very good one (if not only I like what the site has become in recent years - much good tips and articles). As an alternative for your problems, have a look at the explaination of how Tim Hall has done it...
    http://www.oracle-base.com/articles/misc/XMLOverHTTP.php
    Edited by: Marco Gralike on Nov 21, 2011 11:31 AM

Maybe you are looking for

  • Disc image file exported from Encore CS4 won't work

    Hello, I have a problem concerning the export of a disc image file in Encore CS4. I recently upgraded to CS4 and wanted to continue my project which I started editing with CS3. While working with CS3 I already did image files from this project for bu

  • MacBook Pro Core 2 Duo intermittent severe Airport glitches

    My MacBook Pro seems to be unable to remain consistently synchronised with our Airport network. Every minute or two, it blocks wireless network traffic completely for 10-20 seconds. At other times, the ping times to our base stations fluctuate wildly

  • How to count bit patterns in a file ?

    Think of the following: You have two files that you want to compare bit by bit. A file has been send the other one has been received. The two files can be of different size (Connection lost). But you not only want to know how many bits are different

  • We should be able to edit our comments for the weblogs

    Is there any way we can go back and edit our comments for the weblogs. I am not a very good typer ( i am always thinking ahead of my typing) and i would love to go back get rid of typos from my comments.

  • Formatted Search on User Defined Table

    Dear Experts, I have the following formatted search query on a user defined table : select $[dbo.[@SALES_BUDGET].U_AcctCode] It throws an error when I attempt to execute it. What's the proper way to write formatted searches on User Defined Tables. Pl