ORACLE APEX POST Restful Web services

Any examples and/or ideas into how to insert a XML or JSON style document into column with XMLtype, varchar2, clob or blob type using an Apex post restful web service? I don't want to use SQL loader, external tables or something that requires a directory in the database server. 
Oracle Apex 4.2
Apache tomcat 7 web server
Oracle Apex Listener 2.0
Oracle database 11.2.0.3
thank you!

MK,
I am able to insert into a table the following json document;
{"name": "John", "age": "21"}
Here is the code behind it.
<code>
create table students (
name varchar2(100),
age varchar2(100));
begin
insert into students(name, age)
values(:name, :age);
end;
</code>
This works, But the following will fail,
{"name": "John", "age": "21"}, {"name": "Mary", "age": "22"}.
I would like to load the document into memory and insert into a table.

Similar Messages

  • Problem getting RESTful web service reference working with header value

    Hi,
    I posted this on Apex Listener forum but since I am not sure problem is with my Application RESTful web service reference or a Listener issue, I am posting here as well:
    I am on Apex 4.2.2 and Listener 2.1 and the listener is on WEblogic.
    I succeeded to get a RESTful web service working in an application with no header to obtain a full set of data. The data set is very large, so I am now just trying to set up a web service to get a set of data based on a student ID.
    I followed the examples shown in the RESTful web service module of SQL Workshop and set up a handler of this type:
    https://ourweblogicserver/apex/bnr/ace/students/course_grades/{stid}
    The test for this handler succeeded both for JSON output and CSV output in the Workshop test environment.
    However, when I try it from a Web Service Reference that I created for my application following what looked like the same approach used on the example video, I get NO data back. If I put a 'stid' directly into a URL of a web browser and do the basic authentication I get the data!!
    This is what I have for the Web service reference:
    https://ourweblogicserver/apex/bnr/ace/students/course_grades/{stid}
    Basic auth set to Yes -- and this is working -- I am able to authenticate
    HTTP method Get
    output format Text
    no response Xpath
    no response namespace
    defaults for new record and parameter delimiter
    NO REST input parameters
    Output set for all the fields in the data set queried (same set of data as in my rest service which does not have any http header)
    REST HTTP Header : Name stid
    I there something I am missing. I am not sure how to troubleshoot this further.
    I also tried exactly following the example shown on the Oracle Video for RESTFul web services at
    http://www.youtube.com/watch?v=gkCvd6P8_OU
    and I can't get the 2nd example to work either-- where the header has the bind variable parameter.
    Pat

    I was able to resolve the problem -- in the latest version of the RESTful web service that I created, I had left out the creation of the Header Parameter bind variable. Once I did that everything works fine!! I was able to test in the application and got the record of an individual student.
    Thanks,
    PM

  • ADF Mobile - Securing REST Web Services

    Hi,
    I've developed some REST web services for my ADF Mobile app to use. They work fine but I'm having trouble securing them. According to the developer guide:
    http://docs.oracle.com/cd/E35521_01/doc.111230/e24475/amxwebservices.htm#CHDGFCGD
    10.5.2 How to Enable Access to REST-Based Web Services
    Since only one security policy is supported for REST-based web services, ADF Mobile automatically adds oracle/wss_http_token_over_ssl_client_policy for REST web service over HTTPS, or oracle/wss_http_token_client_policy for REST web service over HTTP protocol to enable Oracle Web Services Manager (OWSM) Lite Mobile ADF Application Agent to inject a proper security header.
    ..so I'm trying to attach the policy oracle/wss_http_token_service_policy to the web service, but deploying it to Weblogic results in the below stack trace.
    I'm trying to attach the policy in JDeveloper by selecting the service class in the java structure pane, then in the Property Inspector, using the "Web Services extension" section to select the policy.
    I'm guessing I've missed a step, but can't find what. Or I'm doing completely the wrong thing. Either way, any help in resolving would be very much appreciated.
    Rich.
    weblogic.application.ModuleException: [HTTP:101216]Servlet: "CDRestServicePort" failed to preload on startup in Web application: "RestServices".
    javax.xml.rpc.JAXRPCException: oracle.wsm.common.sdk.WSMException: WSM-07508 : Oracle WSM Agent initialization failed due to PolicySet validation errors: WSM-07617 Policy: oracle/wss_http_token_service_policy contains unsupported assertions. 
    , with PolicySet=PolicySet [timestamp=Mon Oct 21 13:53:23 BST 2013, subjectPattern=ResourcePattern [pattern=/DefaultDomain/DefaultServer/SOAPServices/WEBs/RestServices.war/WLSWEBSERVICEs/CDRestServiceService/PORTs/CDRestServicePort, subjectType=WLS_SERVICE, terms={PORT=CDRestServicePort, IMPLEMENTATION=WEB, SUBJECT_TYPE=WLS_SERVICE, SERVICE=CDRestServiceService, MODULE=RestServices.war, APPLICATION=SOAPServices, DOMAIN=DefaultDomain, SERVER=DefaultServer}], domainExpression=http://restws.westbourne/#wsdl.endpoint(CDRestServiceService/CDRestServicePort), polmap={oracle/wss_http_token_service_policy={Policy[wsp:http://schemas.xmlsoap.org/ws/2004/09/policy][oralgp:http://schemas.oracle.com/ws/2006/01/loggingpolicy][local-optimization:off][provides:{http://docs.oasis-open.org/ns/opencsa/sca/200903}authentication, {http://docs.oasis-open.org/ns/opencsa/sca/200903}clientAuthentication, {http://docs.oasis-open.org/ns/opencsa/sca/200903}clientAuthentication.transport][status:enabled][xmlns:http://schemas.xmlsoap.org/ws/2004/09/policy][wsu:http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd][Id:wss_http_token_service_policy][displayName:i18n:oracle.wsm.resources.policydescription.PolicyDescriptionBundle_oracle/wss_http_token_service_policy_PolyDispNameKey][orawsp:http://schemas.oracle.com/ws/2006/01/policy][orasp:http://schemas.oracle.com/ws/2006/01/securitypolicy][description:i18n:oracle.wsm.resources.policydescription.PolicyDescriptionBundle_oracle/wss_http_token_service_policy_PolyDescKey][attachTo:binding.server][Name:oracle/wss_http_token_service_policy][xsi:http://www.w3.org/2001/XMLSchema-instance][category:security][{LogAssertion[Logging][{AssertionBindings[{Config[name:Log Message1_properties][{PropertySet[name:standard-security-properties][{Property[type:string][contentType:optional][name:reference.priority]}]}]}]}][{MessageLog[ Request = all][ Response =all]}]}][{HttpSecurityScenario[http-security][Silent:true][name:Http Security][Enforced:true][category:security/authentication][{AssertionBindings[{Config[name:HttpConfig][configType:declarative][{PropertySet[name:standard-security-properties][{Property[type:string][contentType:constant][name:realm][Value:owsm]}][{Property[type:string][contentType:constant][name:role][Value:ultimateReceiver]}][{Property[type:string][contentType:optional][name:reference.priority]}]}]}]}]}][{LogAssertion[Logging][{AssertionBindings[{Config[name:Log Message2_properties][{PropertySet[name:standard-security-properties][{Property[type:string][contentType:optional][name:reference.priority]}]}]}]}][{MessageLog[ Request = all][ Response =all]}]}]}}}, constraintedDataMap={ConstraintGroup [terms=[], size=0, weight=0]=ConstraintedData [status=FAILURE, localoptimization=null, validationErrors=[Error Code:WSM-07617 Error Context:Policy], overrides=[], polRefs=[PolicyReference [policyURI=oracle/wss_http_token_service_policy, polRefQName={http://schemas.xmlsoap.org/ws/2004/09/policy}PolicyReference, version=-1, attributes={{http://schemas.oracle.com/ws/2006/01/policy}status=enabled, {http://schemas.oracle.com/ws/2006/01/policy}category=security}, overrideProps=null]]]}, locked=true]
      at oracle.wsm.agent.handler.wls.WSMAgentHook.handleException(WSMAgentHook.java:462)
      at oracle.wsm.agent.handler.wls.WSMAgentHook.init(WSMAgentHook.java:274)
      at weblogic.wsee.jaxws.framework.jaxrpc.TubeFactory.newHandler(TubeFactory.java:108)
      at weblogic.wsee.jaxws.framework.jaxrpc.TubeFactory.createServer(TubeFactory.java:81)
      at weblogic.wsee.jaxws.WLSTubelineAssemblerFactory$TubelineAssemblerImpl.createServer(WLSTubelineAssemblerFactory.java:216)
      at com.sun.xml.ws.server.WSEndpointImpl.<init>(WSEndpointImpl.java:213)
      at weblogic.wsee.jaxws.WLSContainer$WLSEndpointFactory$WLSEndpointImpl.<init>(WLSContainer.java:623)

    Hi,
    so have you "Oracle Web Services Manager (OWSM) Lite Mobile ADF Application Agent" installed? Sounds this is a pre-requisite for this work
    Frank

  • Consuming RESTful web service in Apex app

    Hi,
    I have created a RESTful Web service through an Apex application (4.0) and published as a public web service. Can someone point me to an example of how to then consume that service in another Apex app? The output is straightforward XML that I can retrieve just by pointing the browser to the URL of the service created, but when I go to create the REST Web Reference for the receiving application, I am not sure what to put for the Response Xpath or Response Namespace. The service is meant to just return report records that were created in the REStful Web service with no input required.
    The service XML looks like this:
    <ROWSET>
    <ROW>
    <PROJ_ID>132</PROJ_ID>
    <PSL_NETID>xxxxxxxx</PSL_NETID>
    <PROJECT_TITLE>11g- Oracle Upgrade to RAC 11g</PROJECT_TITLE>
    <CUSTOMER>OIT</CUSTOMER>
    <DIVISION>EIS</DIVISION>
    </ROW>
    <ROW>
    <PROJ_ID>132</PROJ_ID>
    <PSL_NETID>xxxxxx</PSL_NETID>
    <PROJECT_TITLE>11g- Oracle Upgrade to RAC 11g</PROJECT_TITLE>
    <CUSTOMER>OIT</CUSTOMER>
    <DIVISION>CSS</DIVISION>
    Any help would be appreciated.
    Thanks,
    Pat
    Edited by: patfmnd on Dec 7, 2012 3:04 AM

    Hi,
    I have made progress in this. I created the RESTful report service in an Apex 4.1 application. (previous attempt was with 4.0 version of Apex)
    I then created a separate application and created a RESTful web service reference that I tested and it was successful in bringing up XML. However in Apex 4.1, when I create a report following the Wizard for creating a report based on that Web service reference I get the error: ORA-31013: Invalid XPATH expression Which I don't know how to get past. The Xpath provided in the Web service reference test gave output below and brought back a result. There was no where during the Report creation to provide an Xpath. Am I missing something or is 4.1 not quite Web service ready??
    This is what I get from the test of the Web service reference in the Apex App from which I want to create a report: (I see in this XML the data I was expecting from the test of the RESTful web service but it looks like the output I get from the Web service test is more like the Report xml itself.)
    <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:htmldb="http://htmldb.oracle.com" xmlns:apex="http://apex.oracle.com"> <head> <title>Author</title>
    <!--[if IE]><link rel="stylesheet" href="/i/css/apex_ie_4_1.css" type="text/css" /><![endif]--> <script type="text/javascript">
    //<![CDATA[
    var apex_img_dir = "/i/", htmldb_Img_Dir = apex_img_dir;
    //]]>
    </script>
    <script src="/i/javascript/apex_4_1.min.js" type="text/javascript">
    </script>
    <script type="text/javascript">
    //<![CDATA[
    apex.security.framebreaker("D");
    //]]>
    </script>
    <!--[if IE]><link rel="stylesheet" href="/i/themes/theme_2/css/theme_4_0_ie.css" type="text/css" /><![endif]--><!--[if IE 6]><link rel="stylesheet" href="/i/themes/theme_2/css/theme_4_0_ie6.css" type="text/css" /><![endif]--><!--[if IE 7]><link rel="stylesheet" href="/i/themes/theme_2/css/theme_4_0_ie7.css" type="text/css" /><![endif]--><!--[if lte IE 6]><div id="outdated-browser">You are using an outdated web browser. For a list of supported browsers, please reference the Oracle Application Express Installation Guide.</div><![endif]-->
    <form action="wwv_flow.accept" method="post" name="wwv_flow" id="wwvFlowForm"><input type="hidden" name="p_flow_id" value="140" id="pFlowId" /><input type="hidden" name="p_flow_step_id" value="1" id="pFlowStepId" /><input type="hidden" name="p_instance" value="6146802068150520" id="pInstance" /><input type="hidden" name="p_page_submission_id" value="1940235134399423" id="pPageSubmissionId" /><input type="hidden" name="p_request" value="" id="pRequest" />
    <div id="header">
    <div id="app-logo"><a href="f?p=140:1:0"></a></div>
    <div id="navbar">
    <div class="navbar-entry">Logout</div>
    </div>
    </div>
    <div id="tabs">
    <div class="frame">
    <div class="bg">
    <div class="tab-holder">
    <div class="first-current">
    <div><span>Author</span></div>
    </div>
    </div>
    </div>
    </div>
    </div>
    <div id="topbar">
    <div class="breadcrumb-region" id="R170908223330421512">
    <div>
    <div id="breadcrumbs">
    <ul class="breadcrumb-list">
    <li class="current">Author</li>
    </ul>
    </div>
    </div>
    </div>
    </div>
    <div id="messages"></div>
    <div id="body">
    <table class="tbl-body" cellspacing="0" cellpadding="0" border="0" summary="">
    <tbody>
    <tr>
    <td class="tbl-main" width="100%">
    <div class="rounded-corner-region" id="books">
    <div class="rc-blue-top">
    <div class="rc-blue-top-r">
    <div class="rc-title">AUTHOR</div>
    <div class="rc-buttons"><button value="Reset" class="button-gray" type="button" id="B170907622885421490"><span>Reset</span></button></div>
    </div>
    </div>
    <div class="rc-body">
    <div class="rc-body-r">
    <div class="rc-content-main">
    <table id="apex_layout_170907030238421484" border="0" class="formlayout" summary="" role="presentation" datatable="0">
    <tr>
    <td align="right"><label for="P1_REPORT_SEARCH" tabindex="999"><a class="optional-w-help" href="javascript:popupFieldHelp('170907422375421487','6146802068150520')" tabindex="999">Search</a></label></td>
    <td colspan="1" rowspan="1" align="left"><input type="hidden" name="p_arg_names" value="170907422375421487" /><input type="text" id="P1_REPORT_SEARCH" name="p_t01" value="" size="30" maxlength="2000" class="text_field" /></td>
    <td align="right"><label for="P1_ROWS" tabindex="999"><a class="optional-w-help" href="javascript:popupFieldHelp('170907508375421490','6146802068150520')" tabindex="999">Display</a></label></td>
    <td colspan="1" rowspan="1" align="left"><input type="hidden" name="p_arg_names" value="170907508375421490" /><select name="p_t02" id="P1_ROWS" size="1" class="selectlist">
    <option value="10">10</option>
    <option value="15" selected="selected">15</option>
    <option value="20">20</option>
    <option value="30">30</option>
    <option value="50">50</option>
    <option value="100">100</option>
    <option value="200">200</option>
    <option value="500">500</option>
    <option value="1000">1000</option>
    <option value="5000">5000</option>
    </select></td>
    <td align="left"></td>
    <td colspan="1" rowspan="1" align="left"><button value="Go" class="button-gray" type="button" id="P1_GO"><span>Go</span></button></td>
    </tr>
    </table>
    <div id="report_170907030238421484_catch">
    <table cellpadding="0" border="0" cellspacing="0" summary="" id="report_books">
    <tr>
    <td></td>
    </tr>
    <tr>
    <td>
    <table cellpadding="0" border="0" cellspacing="0" summary="" class="report-standard">
    <tr>
    <th id="AUTHORID" class="header">
    <div class="rpt-sort">Authorid<img align="absmiddle" src="/i/arrow_up_gray_dark.gif" width="13" height="12" alt="Sort by this column" /></div>
    </th>
    <th id="LNAME" class="header">
    <div class="rpt-sort">Lname</div>
    </th>
    <th id="FNAME" class="header">
    <div class="rpt-sort">Fname</div>
    </th>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">A100</td>
    <td headers="LNAME" class="data">AUSTIN</td>
    <td headers="FNAME" class="data">JAMES</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">A105</td>
    <td headers="LNAME" class="data">ADAMS</td>
    <td headers="FNAME" class="data">JUAN</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">B100</td>
    <td headers="LNAME" class="data">BAKER</td>
    <td headers="FNAME" class="data">JACK</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">F100</td>
    <td headers="LNAME" class="data">FIELDS</td>
    <td headers="FNAME" class="data">OSCAR</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">J100</td>
    <td headers="LNAME" class="data">JONES</td>
    <td headers="FNAME" class="data">JANICE</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">K100</td>
    <td headers="LNAME" class="data">KZOCHSKY</td>
    <td headers="FNAME" class="data">TAMARA</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">M100</td>
    <td headers="LNAME" class="data">MARTINEZ</td>
    <td headers="FNAME" class="data">SHEILA</td>
    </tr>
    <tr class="highlight-row">
    <td headers="AUTHORID" class="data">P100</td>
    <td headers="LNAME" class="data">PORTER</td>
    <td headers="FNAME" cla
    Edited by: patfmnd on Dec 12, 2012 5:59 PM
    Edited by: patfmnd on Dec 12, 2012 6:07 PM

  • REST Web Service Output Parameter not working in POST Handler

    I've created a RESTful Web Service in Oracle Apex, using a POST method as "handler".   I've setup 11 input parameters which all work fine, it is my one output parameter that does not return successfully.
    Here is detail on the Output Paramter
    Name:  returns
    Bind Variable Name:  :returns
    Access Method:  OUT
    Source Type: Response
    Parameter Type:  String
    The actual source is a call to a pl/sql package that returns a value that I set :returns equal to (eg :returns := v_result).   I've tried this with Source Type Header and still the same result, 'no output'.
    I see APEX is calling wwv_flow_api.create_restful_param to generate the parameters (for importing), is there any documentation on this procedure?
    How can I get this output parameter to return something in the response?
    The request accepts a Json payload.
    Any help greatly appreciated
    Thanks,
    James

    Solved my own problem :returns does not work needs to be returns
    Does Not Work
    Name:  returns
    Bind Variable Name:  :returns
    Access Method:  OUT
    Source Type: Response
    Parameter Type:  String
    Does Work
    Name:  returns
    Bind Variable Name:  returns
    Access Method:  OUT
    Source Type: Response
    Parameter Type:  String

  • Accessing Restful Web Services in APEX?

    Hi I am new to this forum so I hope you will bear with me. I have been looking at how to create RESTful web services through the SQL Workshop Resful Services wizard but every single article I look at refers to a test button which I cannot see anywhere (I am using APEX 4.2) so how do I test the service?
    Also, how can I get the URL of the service so I can call it from another application?
    Thanks in advance
    Malcolm

    Oracle® Application Express
    SQL Workshop Guide
    Release 4.2
    RESTful Service Requirements
    In order for the RESTful Service utility to be available and function properly, the
    following requirements must be met:
    ■ The instance administrator must enable RESTful Services for this Application
       Express instance. See Oracle Application Express Administration Guide.
    ■ The Oracle Application Express Listener version 2.0 or higher must be used. The
      Oracle XML DB HTTP Server with the embedded PL/SQL gateway and Oracle
      HTTP Server with mod_plsql do not support this functionality. See Oracle
      Application Express Listener Installation and Developer Guide.
    Regards
    Zack

  • Problem with RESTful web service

    I am running into a problem with Flex Web Services (REST) in trying to get the proper format returned. I can see that the HTTP header is set to
    Accept: */*;
    rather than
    Accept: application/xml
    when sending the request. The web service was generated via the web services HTTP data services wizard. I edited it to set the resultFormat to xml
        // Constructor
        public function _Super_UsersService()
            // initialize service control
            _serviceControl = new mx.rpc.http.HTTPMultiService();
             var operations:Array = new Array();
             var operation:mx.rpc.http.Operation;
             var argsArray:Array;
             operation = new mx.rpc.http.Operation(null, "getUsers");
             operation.url = "http://localhost:8888/users";
             operation.contentType = "";
             operation.method = "GET";
             operation.resultFormat = "xml";
             //operation.serializationFilter = serializer0;
             operation.properties = new Object();
             operation.properties["xPath"] = "/";
             operation.resultType = valueObjects.Users;
             operations.push(operation);
             _serviceControl.operationList = operations; 
             model_internal::initialize();
    How does one configure the accept header?

    Hi,
    I have posted a simple application with the RESTful reference:
    http://apex.oracle.com/pls/apex/f?p=13758
    I can give you full privileges on this so you can look at the WEB service reference. Shall I send to you separately for login user?
    It is using the RESTful service: http://apex.oracle.com/pls/apex/nd_pat_miller/demo/employee/{deptno}
    This RESTful service tests fine when I test from within the RESTful web service module of the Workspace.
    I based this on the Video demo tutorial for RESTful web service that Oracle published for 4.2 release. The video seemed to exclude the {deptno} in the URL but when I try that, it doesn't work either.
    This is the error I am getting when I run this on my Apex environment: (it, of course, will not run the web service in the apex.oracle.com environment)
    class="statusMessage">Bad Request</span>                                         
    </h3>                                         
    </div>                                         
    </div>                                         
    <div id="xWhiteContentContainer" class="xContentWide">                                         
    <div class="xWhiteContent">                                         
    <div class="errorPage">                                         
    <p>                                         
    <ul class="reasons"><li class="badRequestReason"><span class="target" style="display:none;">uri</span><span class="reason">Request path contains unbound parameters: deptno</span></li>                                    
    </ul>Thanks,
    Pat
    Edited by: patfmnd on May 8, 2013 3:33 AM

  • Problem with RESTful web service with header value

    Hi,
    I am on Apex 4.2.2 and Listener 2.1 and the listener is on WEblogic.
    I succeeded to get a RESTful web service working in an application with no header to obtain a full set of data. The data set is very large, so I am now just trying to set up a web service to get a set of data based on a student ID.
    I followed the examples shown in the RESTful web service module of SQL Workshop and set up a handler of this type:
    https://ourweblogicserver/apex/bnr/ace/students/course_grades/{stid}
    The test for this handler succeeded both for JSON output and CSV output in the Workshop test environment.
    However, when I try it from a Web Service Reference that I created for my application following what looked like the same approach used on the example video, I get NO data back. If I put a 'stid' directly into a URL of a web browser and do the basic authentication I get the data!!
    This is what I have for the Web service reference:
    https://ourweblogicserver/apex/bnr/ace/students/course_grades/{stid}
    Basic auth set to Yes -- and this is working -- I am able to authenticate
    HTTP method Get
    output format Text
    no response Xpath
    no response namespace
    defaults for new record and parameter delimiter
    NO REST input parameters
    Output set for all the fields in the data set queried (same set of data as in my rest service which does not have any http header)
    REST HTTP Header : Name stid
    I there something I am missing. I am not sure how to troubleshoot this further.
    Pat

    Hi,
    I have posted a simple application with the RESTful reference:
    http://apex.oracle.com/pls/apex/f?p=13758
    I can give you full privileges on this so you can look at the WEB service reference. Shall I send to you separately for login user?
    It is using the RESTful service: http://apex.oracle.com/pls/apex/nd_pat_miller/demo/employee/{deptno}
    This RESTful service tests fine when I test from within the RESTful web service module of the Workspace.
    I based this on the Video demo tutorial for RESTful web service that Oracle published for 4.2 release. The video seemed to exclude the {deptno} in the URL but when I try that, it doesn't work either.
    This is the error I am getting when I run this on my Apex environment: (it, of course, will not run the web service in the apex.oracle.com environment)
    class="statusMessage">Bad Request</span>                                         
    </h3>                                         
    </div>                                         
    </div>                                         
    <div id="xWhiteContentContainer" class="xContentWide">                                         
    <div class="xWhiteContent">                                         
    <div class="errorPage">                                         
    <p>                                         
    <ul class="reasons"><li class="badRequestReason"><span class="target" style="display:none;">uri</span><span class="reason">Request path contains unbound parameters: deptno</span></li>                                    
    </ul>Thanks,
    Pat
    Edited by: patfmnd on May 8, 2013 3:33 AM

  • Composite Application with RESTful Web Services

    Hello!
    Is it possible to build Composite Application with RESTful Web Services only. I use Glassfishe 2.1 and OpenESB 2.1.
    Can you point me on some tutorials on the net to read about using RESTful Web Services in BPEL?

    Hi Gabriel,
    Let me try to answer some of your questions:
    1) The "Requires Secure Access" attribute of a resource handler controls whether this handler must be accessed/consumed only over SSL (HTTPS). Oracle Database Cloud Schema Service is only offered over SSL, so this attribute does not have any effect on RESTful services deployed in this environment (because secure access is always required and there is no other way). That said, if you want to access such web service from your own APEX instance, your instance must have Oracle Wallet configured with appropriate SSL certificate.
    2) The URI parameters are not required. If your web service returns data for many entities (for example, list of employees in employees/), you may not need a parameter. If your web service returns data for one specific entity (for example, details of one employee in employees/{id}), you may want to identify that entity with a URI parameter.
    3) You can have many URI parameters, for example: customers/{id}/orders/{order_id}.
    4) Yes, these are the same HTTP methods/verbs you would use from PHP.
    5) If you are trying this POST example from your own APEX instance (not Oracle Database Cloud Schema Service) and you are trying to access a web service over SSL, then it is likely that the Oracle Wallet used by your instance does not include the required SSL certificate(s), or the Oracle Wallet is not configured at all.
    6) I recommend to check RESTful Web Services for the Oracle Database Cloud white paper and Oracle REST Data Services Developers Guide. Oracle REST Data Services is the technology that enables RESTful services in the Oracle Database Cloud Schema Service.
    You can certainly create your own web services in the Oracle Database Cloud Schema Service and consume them from the same environment.
    Vlad

  • HTTP error when trying to access RESTful web service from application

    Hi,
    We are getting the following error when trying to access a RESTful web service coming from Apex workspace 4.2.1 and Apex listener 2.1:
    ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-29024: Certificate validation failure
    In the Debug report, besides the above I also see:
    error_backtrace: ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-06512: at "APEX_040200.WWV_FLOW_WEB_SERVICES", line 543 ORA-06512: at "APEX_040200.WWV_FLOW_WEB_SERVICES", line 1164 ORA-06512: at "APEX_040200.WWV_FLOW_PROCESS", line 396
    We get that error whether we use https or http in the URI pointing to the web service. When I test the Web Service in Workspace RESTful service GUI, I get the data back. When I go build an application with a report calling the RESTful Web Service I get that error. Both the Application and the Workspace RESTful services are on the same Apex environment and even the same workspace.
    What is odd is that I can actually put the URL of the web service into a browser and I get the data: (using the demo hr data in sample RESTful services.)
    IN browser-- https://weblogic-dev.edu/apex/ace/hr/empinfo/
    yields:
    7839,KING,PRESIDENT,,1981-11-17T05:00:00Z,5000,,10 7698,BLAKE,MANAGER,7839,1981-05-01T04:00:00Z,2850,,30 7782,CLARK,MANAGER,7839,1981-06-09T04:00:00Z,2450,,10 7566,JONES,MANAGER,7839,1981-04-02T05:00:00Z,2975,,20 7788,SCOTT,ANALYST,7566,1982-12-09T05:00:00Z,3000,,20 7902,FORD,ANALYST,7566,1981-12-03T05:00:00Z,3000,,20 7369,SMITH,CLERK,7902,1980-12-17T05:00:00Z,800,,20 7499,ALLEN,SALESMAN,7698,1981-02-20T05:00:00Z,1600,300,30 7521,WARD,SALESMAN,7698,1981-02-22T05:00:00Z,1250,500,30 7654,MARTIN,SALESMAN,7698,1981-09-28T04:00:00Z,1250,1400,30 7844,TURNER,SALESMAN,7698,1981-09-08T04:00:00Z,1500,0,30 7876,ADAMS,CLERK,7788,1983-01-12T05:00:00Z,1100,,20 7900,JAMES,CLERK,7698,1981-12-03T05:00:00Z,950,,30 7934,MILLER,CLERK,7782,1982-01-23T05:00:00Z,1300,,10
    Any ideas on what would be causing the Error above in our application?
    Thanks,
    Pat
    Edited by: patfmnd on Mar 11, 2013 3:25 PM
    In reviewing the above error, I think we are realizing that we have to have the Weblogic layer SSL cert (actually the CERT from our BigIP load balancer which also does our SSL termination) imported into the Oracle server wallet where Apex is installed. Am I correct?
    PM

    We resolved our problem. The Apex Administrative Guide made us realize that we had to set up Wallet path in the Instance. This required working with DBAs to follow the Advanced networking guide to get the wallet set up on our server. We then added that path to the Instance configuration. (Manager Instance --> Instance settings). We ran into another other issue related to our implementation of CAS but were able to resolve that, and 'voila' were able to get the sample RESTful service consumed by our application!!
    Now to the task of figuring out how to get Basic Auth working between client application and RESTful web service. If anyone has that working, let us know!!
    It would be helpful if in the documentation of the Apex 2.x listener or Apex install/configuration there was clear reference to the above steps required for HTTPS access to RESTful web services.
    Pat

  • REST Web Service References: Can't run Google APIS

    Hello Everyone!
    I am learning on how to integrate REST web service reference in APEX application. I found a tutorial video at YouTube on 'Creating and Using a RESTful Web Service in Application Express 4.2', which found to be very helpful and easy to do on my sample app. The REST Web Service URL:
    http://maps.googleapis.com/maps/api/geocode/xml?address=san%20fancisco&sensor=false
    But my application throws an error as below:
    1 error has occurred
    ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-24247: network access denied by access control list (ACL)
    After going through some of the posts here at OTN, I have granted access as follows:
    GRANT EXECUTE ON SYS.UTL_HTTP TO ETI;
    GRANT EXECUTE ON SYS.UTL_INADDR TO ETI;
    GRANT EXECUTE ON SYS.UTL_TCP TO ETI;
    GRANT EXECUTE ON SYS.UTL_SMTP TO ETI;
    GRANT EXECUTE ON SYS.UTL_URL to ETI;
    GRANT EXECUTE ON SYS.UTL_XML to ETI;
    Second thing I did was, created and assigned ACL:
    begin
      dbms_network_acl_admin.create_acl (
        acl         => 'googleapis.xml',
        description => 'Google Translate API',
        principal   => 'CONNECT',
        is_grant    => true,
        privilege   => 'connect',
        start_date  => null,
        end_date    => null
      dbms_network_acl_admin.add_privilege (
        acl       => 'googleapis.xml',
        principal => 'CONNECT',
        is_grant  => true,
        privilege => 'connect'
      dbms_network_acl_admin.assign_acl (
        acl  => 'googleapis.xml',
        host => 'ajax.googleapis.com'
      dbms_network_acl_admin.assign_acl (
        acl  => 'googleapis.xml',
        host => 'maps.googleapis.com'
    end;
    All these statements were executed on my database with out any error, even though not helping my web service reference to work.
    Any idea how can I get my Google API REST Web service working, what is the thing I'm missing here?

    I apologize for the lack of information.
    I thought I had included a list of schemas for you to try out.
    At first, (due to the GRANT ___ TO ETI;) I thought you were writing your own Web Service parser in PL/SQL.
    (If that was the case, than ETI would need be part with the ACL)
    Then, I realized,you were using the built in APEX functionality.
    In this case, try adding your APEX_{version} schema as part of the ACL.
    I'm not sure if this will work (I haven't tried it).
    However, I do know you need to add the APEX_{version} to the ACL if you use the LDAP Authentication.
    finding APEX_{version}
    select comp_id, version, status, schema
    from dba_registry
    where comp_id='APEX'
    MK

  • Exposing a report as RESTful web service - Parameters

    Hi,
    I am creating a RESTful web service by exposing an apex report. It just works fine and it renders the data. However I want to have parameters and values in the web service URL so that the data can be filtered based on the parameter values?
    For example:
    http://127.0.0.1:8080/apex/apex_rest.getReport?app=100&page=15&reportid=rest_example renders correctly for the report query
    select * from (
    select
    "CUSTOMER_ID",
    "CUST_FIRST_NAME",
    "CUST_LAST_NAME",
    "CUST_STREET_ADDRESS1",
    "CUST_STREET_ADDRESS2",
    "CUST_CITY",
    "CUST_STATE",
    "CUST_POSTAL_CODE",
    "PHONE_NUMBER1",
    "PHONE_NUMBER2",
    "CREDIT_LIMIT",
    "CUST_EMAIL"
    from #OWNER#.DEMO_CUSTOMERS )
    where (
    instr(upper("CUST_FIRST_NAME"),upper(nvl(:P15_REPORT_SEARCH,"CUST_FIRST_NAME"))) > 0  or
    instr(upper("CUST_LAST_NAME"),upper(nvl(:P15_REPORT_SEARCH,"CUST_LAST_NAME"))) > 0
    )But I want to filter the result for a particular customer id by getting a value in the URL like this.
    http://127.0.0.1:8080/apex/apex_rest.getReport?app=100&page=15&reportid=rest_example&P15_CUSTOMER_ID=6 and to use the value received thro the URL in the report query
    select * from (
    select
    "CUSTOMER_ID",
    "CUST_FIRST_NAME",
    "CUST_LAST_NAME",
    "CUST_STREET_ADDRESS1",
    "CUST_STREET_ADDRESS2",
    "CUST_CITY",
    "CUST_STATE",
    "CUST_POSTAL_CODE",
    "PHONE_NUMBER1",
    "PHONE_NUMBER2",
    "CREDIT_LIMIT",
    "CUST_EMAIL"
    from #OWNER#.DEMO_CUSTOMERS
    where customer_id = :P15_CUSTOMER_ID)
    where (
    instr(upper("CUST_FIRST_NAME"),upper(nvl(:P15_REPORT_SEARCH,"CUST_FIRST_NAME"))) > 0  or
    instr(upper("CUST_LAST_NAME"),upper(nvl(:P15_REPORT_SEARCH,"CUST_LAST_NAME"))) > 0
    )Is it possible to have it working in this way?
    I am currently testing this in apex 4.2 and Oracle 11g XE. My development environment will be Apex 4.1 and Oracle 11g.
    Thanks in Advance.
    Regards,
    Natarajan
    Edited by: Nattu on Dec 18, 2012 2:09 AM

    It does accept values for the parameters but does not accept value names in the URL.
    The previous thread Restful web service passing character parameters helped me to get it working.
    Thanks.

  • 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

  • Basic auth with RESTful WEb service and Web Service reference

    Hi, All,
    We have made much progress on getting an application working wtih RESTful web services but now are trying to figure out how to lock down a RESTful Web service while making it available for a particular application.
    We are using one of the sample 'emp' table web services that come with Apex 4.2 and are trying to apply Basic Auth to the WEb Service via Weblogic filter defined in the web.xml file. That works fine. I now get challenged when I try to go to :
    https://wlogic.edu/apex/bnr/ace/hr/empinfo/
    And when I authenticate to that challenge I am able to get the data. (we are usiing LDAP authentication at the Weblogic level)
    However, I am not sure how to get same basic authentication to work with the Web Service reference in my application. I see the error message in the application when I try to call that Web Service:
    401--Unauthorized<
    And I see:
    "The request requires user authentication. The response MUST include a WWW-Authenticate header field (section 14.46) containing a challenge applicable to the requested resource. The client MAY repeat the request with a suitable Authorization header field (section 14.8). If the request already included Authorization credentials"
    How do I provide the credentials in the Web REference or do I provide credentials in the Application?
    Web service works fine if I remove the RESTful web service basic auth from the Web.xml file.
    Should we NOT use Weblogic basic auth and instead use basic auth from Workspace RESTful web service definition. If so, how do we implement THAT basic auth in the Web Service definition and in the Web SErvice Reference on the application?
    Thanks,
    Pat

    What I mean is diid you try to use the PL/SQL package for APEX webservice. Here is an example I use (modified and shortened, just to show how much better this is than to use it from the application).
    CREATE OR REPLACE PACKAGE webservice_pkg
    IS
       PROCEDURE create_webservice (
          p_id            IN       NUMBER,
          p_message       OUT      VARCHAR2,
          p_workspace     IN       VARCHAR2 DEFAULT 'MY_WORKSPACE',
          p_app_id        IN       NUMBER DEFAULT v ('APP_ID'),
          p_app_session   IN       VARCHAR2 DEFAULT v ('SESSION'),
          p_app_user      IN       VARCHAR2 DEFAULT v ('APP_USER')
    END webservice_pkg;
    CREATE OR REPLACE PACKAGE BODY webservice_pkg
    IS
       PROCEDURE set_credentials (
          p_workspace     IN   VARCHAR2,
          p_app_id        IN   NUMBER,
          p_app_session   IN   VARCHAR2,
          p_app_user      IN   VARCHAR2
       IS
          v_workspace_id   NUMBER;
       BEGIN
          SELECT workspace_id
            INTO v_workspace_id
            FROM apex_workspaces
           WHERE workspace = p_workspace;
          apex_util.set_security_group_id (v_workspace_id);
          apex_application.g_flow_id := p_app_id;
          apex_application.g_instance := p_app_session;
          apex_application.g_user := p_app_user;
       END set_credentials;
       PROCEDURE create_webservice (
          p_id            IN       NUMBER,
          p_message       OUT      VARCHAR2,
          p_workspace     IN       VARCHAR2 DEFAULT 'MY_WORKSPACE',
          p_app_id        IN       NUMBER DEFAULT v ('APP_ID'),
          p_app_session   IN       VARCHAR2 DEFAULT v ('SESSION'),
          p_app_user      IN       VARCHAR2 DEFAULT v ('APP_USER')
       IS
          v_envelope          VARCHAR2 (32000);
          v_server            VARCHAR2 (400);
          v_url               VARCHAR2 (4000);
          v_result_url        VARCHAR2 (1000);
          v_collection_name   VARCHAR2 (40)    := 'PDF_CARD';
          v_message           VARCHAR2 (4000);
          v_xmltype001        XMLTYPE;
       BEGIN
          v_url := v_server || '.myserver.net/services/VisitCardCreator?wsdl';
          FOR c IN (SELECT *
                      FROM DUAL)
          LOOP
             v_envelope :=
                   '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" '
                || 'xmlns:bran="http://www.myaddress.com">'
                || CHR (10)
                || '<soapenv:Header/><soapenv:Body>'
                || CHR (10)
                || '<parameter:'
                || 'some_value'
                || '>'
                || CHR (10)
                || '<bran:templateID>'
                || p_id
                || '</bran:templateID>'
                || '</soapenv:Body>'
                || CHR (10)
                || '</soapenv:Envelope>';
          END LOOP;
          set_credentials (p_workspace, p_app_id, p_app_session, p_app_user);
          BEGIN
             apex_web_service.make_request
                                         (p_url                  => v_url,
                                          p_collection_name      => v_collection_name,
                                          p_envelope             => v_envelope
             p_message := 'Some message.';
          EXCEPTION
             WHEN OTHERS
             THEN
                v_message :=
                      v_message
                   || '</br>'
                   || 'Error running Webservice Request. '
                   || SQLERRM;
          END;
          BEGIN
             SELECT    v_result_url
                    || EXTRACTVALUE (VALUE (t),
                                     '/*/' || 'Return',
                                     'xmlns="http://www.myaddress.com"'
                    xmltype001
               INTO v_result_url,
                    v_xmltype001
               FROM wwv_flow_collections c,
                    TABLE
                        (XMLSEQUENCE (EXTRACT (c.xmltype001,
                                               '//' || 'Response',
                                               'xmlns="http://www.myaddress.com"'
                        ) t
              WHERE c.collection_name = v_collection_name;
          EXCEPTION
             WHEN OTHERS
             THEN
                v_message := v_message || '</br>' || 'Error reading Collection.';
          END;
       EXCEPTION
          WHEN OTHERS
          THEN
             p_message := v_message || '</br>' || SQLERRM;
       END create_webservice;
    END webservice_pkg;
    /If you use it this way, you will find out what the problem is much faster.
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.apress.com/9781430235125
    http://apex.oracle.com/pls/apex/f?p=31517:1
    http://www.amazon.de/Oracle-APEX-XE-Praxis/dp/3826655494
    -------------------------------------------------------------------

  • Creating RESTful Web Service for BLOB retrieval

    Hi,
    Just got RESTful web services working in Apex 4.2.1 with new Listener 2.1.
    I have now been asked to create a RESTful web service by which photos in BLOB column can be retrieved upon providing the ID for that photo. Can this be done using the Creating RESTful Service Module of Apex 4.2.1? Looking at the Apex 4.2 documentation, I would assume this can be done, but has anyone used this with BLOB data?
    Thanks,
    Pat

    Hi Pat,
    Yes this can be done using RESTful Services - you just need to ensure the query used is in the required format. To obtain a BLOB for a given ID, you would need create a Resource template and handler with the following settings:
    Resource Template Settings:
    URI template: emppic/{id}
    Resource Handler Settings:
    Source query: select mimetype, product_image from demo_product_info where product_id = :id..where the format of the SQL query is SELECT 'content_type', blob_column FROM . . ., as mentioned in Rick Greenwald's Cloud White paper "RESTful Web Services for the Oracle Database Cloud", under the "SQL Source Type" section (see www.oracle.com/technetwork/database/database-cloud/public/restful-wp-1844130.pdf ):
    where 'content_type' is a string passed to the browser to be used to identify the incoming data, and the column to identify the source of the data being sent back. This data is sent back untouched by the Oracle Database Cloud Service. The Media Resource Source Type is typically used for media objects, such as images, where the data will be directly handled by the recipient making the call.The MIMETYPE column in the sample query above holds the necessary setting for the 'content_type' i.e. 'image/jpeg'. The value of ID is then passed in as a parameter when calling the service e.g. emppic/1234. The item level help text would be more helpful if it included additional information, and this is something we intend on addressing in a future release.
    I hope this example helps.
    Regards,
    Hilary

Maybe you are looking for

  • Satellite Pro M40 hard drive failure - Recovery disc on new drive?

    Hi My Satellite Pro M40 hard disk has died and I want to install a new drive. Unfortunately my old drive is 60Gig and the Toshiba parts website has only 40 Gig or 80 Gig drives. Will I encounter any problems with the recovery disc if the hard drive i

  • Can I slim down the size of the Aperture Library by moving the Preview files elsewhere?

    Hi all, I have an Aperture library of almost 20,000 photos, dating back to around 2007. Almost all the master images are stored on an external drive (backed up of course), with only my recent and 'in progress' masters being stored in the library itse

  • How to stop a DIA process ?

    hi all, In SM50, there is one DIA has been running for long hours. I have tried deleting it from SM50 --> Process --> Cancel Without Core. I also tried to delete its session from SM04. But all failed. any suggestion ? regards, kent

  • Expose activates on both primary and secondary monitor corners

    Hi all I am using a dual monitor setup. Laptop screen as primary and a vga monitor for secondary running though a minidisplay to vga adapter. This is setup as an extended desktop. The 3 corners of the primary monitor and 2 corners of the secondary mo

  • CITADEL DATABASE NOT CONFIGURED AS A RELATIONAL DATABASE

    HI: I have the same problem described by another member before, and I haven't found any  resolution of this problem: The problem was: >I enabled database logging, and configured the shared variables that I wanted to log. Then I deployed the variables