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

Similar Messages

  • Protecting a REST web service with Policy Agent

    I have deployed a REST web service in Glassfish using Jersey Annotations. A UI in the same Glassfish instance is protected by a policy agent that forces users through a login page. I would like to protect the REST web service with BASIC Authentication using the same policy agent. Is this possible? Is there supporting documentation?

    Hi Daniel,
    When you publish a message through Rest, hope your Restful service will receive/process the posted message?
    So
    YourBizTalk -->(Post Message to)-->RestFulService
    From the error message, "the published message could not be routed because no subscribers were found.", it seems like the this Restful service is a
    wrapper (or service interface) for BizTalk at client end( where message has been posted thru Rest) and actual posted message is “processed” by BizTalk and the error "" is from BizTalk "after" Rest. This message says the message you posted
    through rest is not found subscription at their end.
    So
    YourBizTalk -->(Post Message to)-->RestFulService -->Clients'BizTalk.
    Here problem is at Clients'BizTalk as shown where the posted message to their BizTalk is not processed because no subscription has been found.
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • How to schedule Webi Documents with Prompts with RESTful Web Services

    Hello,
    I am trying to schedule Webi Documents with Prompts using RESTful Web Services with prompts. I am using Simple Rest Client app provided by Google Chrome. We have Business Objects SP6 Patch 1.
    However the documentation for RESTful Web Services has only examples for the following
    1. Schedule Documents without any Prompts to various destinations and recurrences.
    2. Refresh Documents with Prompts.
    Is there any example for scheduling documents with prompts? Please advise
    Thanks in advance

    Hi Peter,
    With Rest Client, on BI4.0 SP6, you can schedule Webi documents with prompts using the following:
    URL: http://<servername>:6405/biprws/raylight/v1/documents/<docid>/schedules
    Method:POST
    Request Body:
    <schedule>
    <name>Enter values for City:</name>
    <format type="webi"/>
    <destination>
    <inbox/>
    </destination>
    <once retriesAllowed="2" retryIntervalInSeconds="60">
    <startdate>2013-08-26T15:58:51.000+02:00</startdate>
    <enddate>2013-08-27T15:58:51.000+02:00</enddate>
    </once>
    <parameters>
    <parameter optional="false" type="prompt" dpId="DP0">
    <id>0</id>
    <technicalName>Enter values for City:</technicalName>
    <answer constrained="false" type="Text">
    <values>
    <value>Austin</value>
    </values>
    </answer>
    </parameter>
    </parameters>
    </schedule>
    Using the above request you can schedule the Webi document with prompts to inbox destination  and set for once.
    The schedule can be sent in different formats to several destinations and set just for once, daily,
    hourly or monthly.
    You can also check the example for this on page 275 of SAP Webi RESTful SDK user guide for BI4.0 SP6 below:
    http://help.sap.com/businessobject/product_guides/boexir4/en/xi4sp6_webi_restful_ws_en.pdf
    Regards,
    Swati
    Message was edited by: Swati Ikhe

  • Regarding RESTful WEB SERVICES with SPRING MVC Framework

    Hi,
    Can anyone explain me about RESTful WEB SERVICES with SPRING MVC Framework .
    It is urgent for me.
    Thanks
    Venkat Jalli

    Hi Manoj,
    I am also new to Spring MVC portlet. But, I tried to see the difference between sample spring portlet and your code below. Issue that I can see is, in your code, you have not mapped your servlet container with portlet application. So, in theory, your servlet containder do not know that you have a servlet. Let me try to explain from sample portlet,
    In portlet.xml, they have something like below:-
    <portlet-name>swf-booking-mvc</portlet-name>
    <display-name>Spring Webflow Booking MVC</display-name>
    <portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
    And in web.xml, they have below:-
    <servlet-name>swf-booking-mvc</servlet-name>
    <servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
    <init-param>
    <param-name>portlet-name</param-name>
    <param-value>swf-booking-mvc</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    This web.xml is for Pluto portlet container and there will something similar for Weblogic portal as well that I am trying to figure out :(
    Thanks,
    Sanjeev

  • Refreshing a document with Restful Web Services

    Hello,
    I want to refresh a document with Restful Web Services. The document is based on a BEx query with a date variable, which is set as a prompt.
    In order to refresh I send a PUT request like:
    PUT <webiURL>/documents/{documentId}/parameters
    and add the parameter, which is the prompt variable, to the body:
    {"parameters":{"parameter":[{"id":0,"answer":{"@type":"Date","values":{"value":"2014-07-01T00:00:00.000+00:00"}}}]}}
    Then I get a result like:
    {"success":{"message":"The resource of type 'Document' with identifier '1234' has been successfully updated.","id":1234}}
    Now I assume that the document is refreshed. However if I now read the properties with:
    GET <webiURL>/documents/{documentId}/properties
    the lastrefreshtime is not changed.
    Has anybody an idea what happens during a refresh and what is updated?
    Kind regards,
    Michael

    Hi,
    I have analyzed that the refresh seems to be only valid for the current session. This means, if I logon, refresh the document and determine the properties, I get the new refresh time.
    However, if I logoff, I still get the old refresh time. So the refresh is lost or only valid for a session.
    Is this the default behaviour?
    Regards,
    Michael

  • Consuming Synchronous RESTful Web Service with PI

    Dear experts,
    i have a scenario for consuming RESTful web service.
    i have followed all the steps showed in the following link for configuring my interface.
    http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/08/11/calling-synchronous-restful-web-service-with-pi--i
    but still i am facing issues at the communication channel level, the trace of the communication channel is as follows
    Error While Sending Message: Additional error text from response: com.sap.engine.interfaces.messaging.api.exception.MessagingException: org.apache.axis.ConfigurationException: adapter is null org.apache.axis.ConfigurationException: adapter is null at com.sap.aii.adapter.axis.modules.HandlerCore.process(HandlerCore.java:60) at com.sap.aii.adapter.axis.modules.HandlerBean.process(HandlerBean.java:86) at sun.reflect.GeneratedMethodAccessor602.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:47) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:50) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:37) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:21) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_MethodRetry.invoke(Interceptors_MethodRetry.java:46) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:191) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:23) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:25) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:17) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:138) at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164) at com.sun.proxy.$Proxy3284.process(Unknown Source) at com.sap.aii.af.app.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:264) at sun.reflect.GeneratedMethodAccessor544.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:47) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:50) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:37) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:21) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_MethodRetry.invoke(Interceptors_MethodRetry.java:46) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:191) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:23) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:25) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:17) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:138) at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164) at com.sun.proxy.$Proxy646.process(Unknown Source) at com.sap.aii.af.app.listener.AFWListenerBean.onMessage(AFWListenerBean.java:422) at sun.reflect.GeneratedMethodAccessor558.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:47) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:50) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:37) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:21) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_MethodRetry.invoke(Interceptors_MethodRetry.java:46) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:191) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:23) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:25) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:17) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:138) at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164) at com.sun.proxy.$Proxy603.onMessage(Unknown Source) at com.sap.engine.messaging.impl.spi.ServicesImpl.deliver(ServicesImpl.java:362) at com.sap.aii.adapter.xi.ms.XIEventHandler.onDeliver(XIEventHandler.java:1091) at com.sap.engine.messaging.impl.core.queue.consumer.RequestConsumer.onMessage(RequestConsumer.java:75) at com.sap.engine.messaging.impl.core.queue.Queue.run(Queue.java:1017) at com.sap.engine.messaging.runtime.MSWorkWrapper.run(MSWorkWrapper.java:58) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:185) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:302)
    i have also attached screen shots of module tab of my SOAP(Axis) adapter
    regards,
    sushant

    Hi Sushant
    Check the question 11.I am getting org.apache.axis.ConfiguraitonException: adapter is null in this note 1039369 - FAQ XI Axis Adapter
    (you will find all the answers in the attachment section)
    Regards.

  • 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

  • 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

  • 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

  • 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
    -------------------------------------------------------------------

  • Error in REST Web Service with Output Format as Text

    Hi All,
    I am referencing a REST web service, and can successfully connect to it and retrieve results with the Output Format set to XML.
    I don't need the individual node values, I just want to capture the entire XML as a string, and populate a table column with it.
    When I create a new Rest web service reference, with Output Format set to Text, and then create a form/report to run it, I get the following error when I click 'Submit':
    ORA-06550: line 1, column 63: PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: ( - + case mod new not null others avg count current exists max min prior sql stddev sum variance execute forall merge time timestamp interval date pipe
         Error      Error sending request.
    There are control characters in the XML, but surely this is handled by Apex, so I'm not sure what the problem is here.
    Any ideas most welcome.
    Thanks,
    Rhodri

    Rhodri:
    Application Express expects text response to actually be text response, delimited by other characters denoting a new value, and a new record set. You should leave the response as XML. The XML document will be stored in the xmltype01 column of the collection you specify. You can then convert that xmltype01 column to a clob if you like using .toClobVal().
    Regards,
    Jason

  • Create RESTful web service with CSV format (bug??)

    Hi All:
    I am using APEX 4.2.2 with APEX listener 2.0.2.
    I have create a RESTful web service to retreieve some data from a table. The format is "CSV" (the other option is JSON, which I am not faimilar with).
    then I tested and it generate with below sample data.
    United States,"Zhang, Kevin",IT
    Above data means: Country, fullname, department
    As you can see value of fullname is double-quoted and also contains a comma (,) in it.
    Then I create a web service reference in a test application. Then I create a a form and report on web service.
    The problem is the fullname. The output looks like below:
    Country                 fullname                    Department
    United States        "Zhang                      IT
    As you can see, APEX is not able to get fullname correctly.
    Anyone see this issue and how to resolve it?
    Thanks!
    Kevin

    Kevin,
    I'm not sure I would classify it as a bug so much as an enhancement. We need the ability to set the "Text qualifier" as one can from Excel. This would allow the above to be seen a single a single field and, then, to do what you want. However, as I'm sure you realize, this just doesn't exist at the moment.
    So; you could store the first and last names in separate fields in the table (don't forget that you could use virtual columns for this purpose) or simply alter your query to pull them out as if they were separate fields, i.e. use SubStr and InStr.
    If you simply must see them in this format when the CSV is opened, you could create a formula in Excel to do this for you.
    -Joe

  • URGENT: Rest web service with get method works fine in browser but not with java client(Android)

    Hi ,
    I have created one REST web service which accepts two parameters send back JSON results.
    I tested the it in browser with URL as http://+Inteernal server+/ords/utimes/login_info?p1=+first_param+&p2=+second_para+
    Web service URL :  http://+Inteernal server+/ords/utimes/login_info?p1={p1}&p2={p2}
    But when java team wants to access it from java code it gives error as "400- Bad Request".
    one more IMP thing : when I test it in RESTful web service by using "set bind variable" , it only set value of first parameter.
    APEX version : 4.2
    Database : 11g (XE)
    ords : 2.0.8
    please help me ASAP.
    regards,
    Nagesh Patil

    Hi Pragya,
    thank you for the update.
    Another question: could you please give us any reference about these corrections you told about? Maybe they could be relevant in our case too.
    Our raised incident number is: 3100851983
    Kind regards,
    Davide

  • Report Bursting with RESTful Web Services SDK

    Hi,
    We are looking to upgrade to BI 4.x from BI 3.1.  We are not sure whether RESTful Web Services SDK is the way to go.  We have a requirement where we need to be able to refresh a report, save the whole report content to a specified forma for a team lead/manager, and then section/burst each report to separate files that each is corresponding to the individual employee.  In other words, for example, we have a team constent of 1 manager and 4 employees.  We want to save one report for the manager with all the content from the 4 employees, and then 4 individual reports that each belong to each employee.  We current have a macro code that does this in BI 31 refreshing Deski reports.  We want to upgrade to BI 4.X, but the Deski and macro are no longer supported.  The macro in BI 3.1 we used to control when to refresh, where to save the reports and update our external datasource that the reports finished refreshing and available for view.  We want to keep the same functionality so that it is not a whole redesign of the system when the upgrade happens.  Thank you so much for your help.  Any sample code, tips and guides are helpful.  I am looking to prototype first before I can confirm this will work when upgrading.  I have a code snippet in macro (VBA) from BI 3.1 in the attached file for reference if you know of the equivalent.

    Hi Raghunath,
    Looking at your macro, most of the functionality would be available with REST SDK. With BI 4.x REST is now only SDK which provides APIs to work with webi report. With .NET or Java SDK we could not eeven schedule a webi doc with prompts.
    With BI 4.1 REST APIs include.
    refresh report, schedule report, save report, export which is done by your macro.
    For detailed tasks, such as saving and modifying the report for specific users and send to schedule, you would need to play around with REST Urls to understand the workflow.
    For starters take a look at the devleopers guide for REST here:
    http://help.sap.com/businessobject/product_guides/sbo41/en/sbo41_webi_restful_ws_en.pdf
    Here is the doc which compares the availability of SDK APIs with different BI versions.
    http://scn.sap.com/docs/DOC-53285
    For any Enterprise level tasks, you could always use .NET or Java enterprise SDk and comibe it with your REST app.
    - Bhushan
    Senior Engineer
    SAP Active Global Support
    Follow us on Twitter
    Got Enhancement ideas? Try the SAP Idea Place

  • Problem with a  web service with Jbuilder 2005 and Weblogic 8.1

    Hi,
    i�m trying to create a web-service using Jbuilder 2005 Enterprise and Weblogic 8.1. It is a very simple web-service, come kinda "Hello World".
    In the last step, after deploying my "ApplicatioModule1", i get this error:
    "Unable to connect to server t3://localhost:7001 as user weblogic.
    Reason: javax.naming.CommunicationException. Root exception is java.net.ConnectException: t3://localhost:7001: Destination unreachable; nested exception is:
         java.net.ConnectException: Connection refused: connect; No available router to destination
         at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:199)
         at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:125)
         at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:291)
         at weblogic.jndi.Environment.getContext(Environment.java:164)
         at weblogic.jndi.Environment.getInitialContext(Environment.java:143)
         at weblogic.management.deploy.utils.MBeanHomeTool.getMBeanHome(MBeanHomeTool.java:157)
         at weblogic.Deployer.runBody(Deployer.java:555)
         at weblogic.utils.compiler.Tool.run(Tool.java:146)
         at weblogic.utils.compiler.Tool.run(Tool.java:103)
         at weblogic.Deployer.main(Deployer.java:399)
    Check option -adminurl, -username and -password. "
    I dont know why i get this error. I think the weblogic server is properly configured and running.
    Anybody can help me?? Thx.

    i have found the solution to the problem myself. I only had to execute this command file startWebLogic.cmd which is placed in this default installation directory C:\bea\user_projects\domains\mydomain in order to put the server listening to ports.
    i hope anybody with the same problem could fix it by reading this post.

Maybe you are looking for

  • How can I add a color bar scale to a CW3DGraph

    I am using the CW3Dgraph control (parametric surface plot) in a LabVIEW program I have written to graph the the strength of an electromagnetic field over a sphere.  The plot color map style is set to use the "color spectrum".  I would like to add a c

  • Extended features has changed since created

    I have randonly played around with certificates, certificate import using Certificate import wizard, but thought I had gine back and reset everything.  such with Adobe Reader 9.3.4 , but now can not get my LiveCycle Interactive Forms 9.0  to open wit

  • Settings for PM notification to trigger PM work order -reg

    Hi, In PM , for maintenance orders we may create them through  IW31  directly or with reference to a maintenance notification already created through IW21 Now are there any settings that the creation of  maintenance notification triggers manitenance

  • ROIDOCPRMS table on R/3 source system: Src. System and Tgt System fields

    Hi experts There is a lot information about ROIDOCPRMS on SDN, but I cannot find anything which describes if the name of the BI system should be in a records in the ROIDOCPRMS table on the R/3 system. The documentation (F1) for the source system fiel

  • Adobe reader corrupted icons

    I attempted to convert a PDF file to Word, but didn't have the upgrade installed. The attempt resulted in corrupted files to icons on my desktop. Now, I cannot access files I was working on. Help! jec329