Proxy restful services via osb

Hi,
I would like to proxy my rest services via OSB for monitoring purpose. I did configure a simple GET call to use OSB proxy, I did it by creating a business service and point the URI to use the absolute URL of the rest Services (i.e. http://localhost:port/myRestMethod) and then created a proxy service pointing to my business service. Is this the correct way of doing it? Also I have the following questions:
1. is there a way to make the URI for the rest service dynamic?
2. How should I configure a post?
I would appreciate any kind of help or if you can point me to some kind of documentation or example. I am very new to OSB and don't have much knowledge about it.
Thanks
Regards
M.

You can set the headers of the request quit similar to the ones you use for the get and delete parts. If you want to POST or PUT JSON/Xml/Text to your rest service you have to fill the $body variable with the contents of the request you want to send. When you use a proxy service I would suggest adding a route to block at the end of the PS. The route block contains a route to the business service you want to call.
When you send the $body in the request pipeline to the business service the $body variable gets updated when the business services receives a response.
What I usually do is add reporting blocks to your request and response pipelines that contain the $body and $header vars. That way it's easy to see what requests you are sending and what kind of responses you are retrieving.
Good luck!

Similar Messages

  • [OSB1031] how to call a RESTful service from OSB

    Hi all,
    I need to call a RESTful service from OSB.
    The RESTful URL service is http://xxx.xxx.xxx.xxx/api/ordertracer and has been implemented in IIS.
    The service accepts a xml string message as input and returns an HttpStatusCode.
    So I started defining a business service (named OrderTracer):
    Service Type: Any XML Service
    Endpoint URI: http://xxx.xxx.xxx.xxx/api/ordertracer
    HTTP Request Method:POST
    Or should I define instead a business service (named OrderTracer2) as following ?
    Service Type = Messaging Service
    Request Message Type = None
    Response Message Type = Text
    Endpoint URI: http://xxx.xxx.xxx.xxx/api/ordertracer
    HTTP Request Method:POST
    When I try to test the business service (the first one named OrderTracer) from OSB test console I got an error:
    <con:metadata xmlns:con="http://www.bea.com/wli/sb/test/config">
    <tran:headers xsi:type="http:HttpResponseHeaders" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <http:Connection>close</http:Connection>
    <http:Content-Length>315</http:Content-Length>
    <http:Content-Type>text/html; charset=us-ascii</http:Content-Type>
    <http:Date>Wed, 03 Oct 2012 14:26:39 GMT</http:Date>
    <http:Server>Microsoft-HTTPAPI/2.0</http:Server>
    </tran:headers>
    <tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">3</tran:response-code>
    <tran:response-message xmlns:tran="http://www.bea.com/wli/sb/transports">Not Found</tran:response-message>
    <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">us-ascii</tran:encoding>
    <http:http-response-code xmlns:http="http://www.bea.com/wli/sb/transports/http">404</http:http-response-code>
    </con:metadata>
    Could I test that RESTful service from business service test console or should I test it from a service callout within a proxy service ?
    Thanks in advance for any hints!
    ferp

    Hi,
    There's a sample on JSON REST here...
    http://java.net/projects/oraclesoasuite11g/downloads/download/OSB/osb-206-JSONREST.zip
    For other samples, see this...
    http://java.net/projects/oraclesoasuite11g/pages/OSB
    Cheers,
    Vlad

  • Comment out proxy/bussiness services in OSB

    How can I comment some of the proxy/bussiness services in OSB?

    I suppose you mean enable/disable.
    There's an option for that in a proxy's operational settings (state = enabled).
    For a business service simply don't expose it with a proxy service, or disable the proxy services that might route to it.
    Hope that helps.

  • [OSB1031] how to call a RESTful service from OSB with authentication

    Hi all,
    I called successfully a RESTful service from OSB.
    We have a business service, named OrderTracer, that wraps the call to the RESTful service.
    The RESTful service requires an authentication so we are trying to find out how the OSB business service should authenticate itself against the RESTful service.
    In addition the RESTful service accepts username/password coded as base64.
    So we defined a Service Account with static resource type and we added the reference to this service account in the business service.
    But when the OSB business service calls the RESTful service, we got an error:
    <fault>
    <con:fault xmlns:con="http://www.bea.com/wli/sb/context">
    <con:errorCode>BEA-380000</con:errorCode>
    <con:reason>Unauthorized</con:reason>
    <con:location>
    <con:node>RouteNode</con:node>
    <con:path>response-pipeline</con:path>
    </con:location>
    </con:fault>
    </fault>
    Does anyone have any hint ?
    Any clue would be of great help.
    Thanks in advance
    ferp

    Hi,
    There's a sample on JSON REST here...
    http://java.net/projects/oraclesoasuite11g/downloads/download/OSB/osb-206-JSONREST.zip
    For other samples, see this...
    http://java.net/projects/oraclesoasuite11g/pages/OSB
    Cheers,
    Vlad

  • Issue with calling restful services via HTTP in an Orchestration

    The company I work for is using RESTful services for our I/O. We are processing EDI files using Biztalk, and are calling the REST services via HTTP from a c# code called within the orchestration. At lower volumes, the service performs fine, but at higher
    transaction volumes, the HTTP calls never return. Is there a resource that needs to be tuned somewhere on the biztalk node to allow higher volumes of HTTP calls? Its not the REST service side - it has no problems handling loads generated by non biztalk nodes.
    For further clarification, the EDI message is a multi batched, so there are many simultaneous orchestrations running at once.  I have started to look at ways to throttle how many instances can run at once, but I still suspect some resource in the HTTP
    sequence that we dont have enough of.
    Ideas?

    I think you were not  enough free threads in the ThreadPool to complete the operation.
    So you can work out with Max connection setting in your BTSNTSvc file first
    <system.net>
    <connectionManagement>
    <add address="http://name.of.server.here" maxconnection="1oo" />
    </connectionManagement>
    </system.net>
    and try increasing number of threads allocated to the specific send Host instance and your Orchestration instance  ,you can try twinkling Response timeout in minutes as well  on host instance
    Thanks
    Abhishek

  • Invoking RESTful service from OSB

    Hi
    I need to invoke Restful service from OSB11g in order to do that...
    1. I have created Business service with the end point of the RESTful service.
    2. Running the Business service and provided the XML as input in Transport Header--> query-string.. i got the response as bellow:
    <serviceResponse returnCode="-1">
    <statusMessage messageId="Exception" messageType="" severityCode="E">
    <text>
    Required input not supplied. Please revisit your input values and try again.
    </text>
    </statusMessage>
    </serviceResponse>
    Is this the correct way i am doing or am i missing something..???
    Thanks
    Vasu

    Hi Vasu,
    did you solve your issue ?
    I have a similar scenario where I need to call a RESTful service from OSB.
    The RESTful URL service is http://xxx.xxx.xxx.xxx/api/ordertracer and has been implemented in IIS.
    The service accepts a xml string message as input and returns an HttpStatusCode.
    So I started defining a business service (named OrderTracer):
    Service Type: Any XML Service
    Endpoint URI: http://xxx.xxx.xxx.xxx/api/ordertracer
    HTTP Request Method:POST
    I tested it from business service test console:
    - in Transport
    -> query-string I put my input xml
    -> http-method: POST
    -> Content-Type: text/xml
    but on execute I got an error:
    <con:metadata xmlns:con="http://www.bea.com/wli/sb/test/config">
    <tran:headers xsi:type="http:HttpResponseHeaders" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <http:Connection>close</http:Connection>
    <http:Content-Length>315</http:Content-Length>
    <http:Content-Type>text/html; charset=us-ascii</http:Content-Type>
    <http:Date>Wed, 03 Oct 2012 15:07:38 GMT</http:Date>
    <http:Server>Microsoft-HTTPAPI/2.0</http:Server>
    </tran:headers>
    <tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">3</tran:response-code>
    <tran:response-message xmlns:tran="http://www.bea.com/wli/sb/transports">Not Found</tran:response-message>
    <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">us-ascii</tran:encoding>
    <http:http-response-code xmlns:http="http://www.bea.com/wli/sb/transports/http">404</http:http-response-code>
    </con:metadata>
    May I ask you to provide me any hints ?
    Thanks in advance for any help
    ferp

  • BPEL service(SOAP) expose as RESTFul Service through OSB

    I am trying to invoke simple HelloWorld BPEL process exposed as SOAP Web Service through OSB as RESTFul service but always getting XML parsing exception in response action.
    Could any body give me steps how to implement it?
    Thanks
    Edited by: user10475179 on Dec 4, 2011 9:44 PM

    Thanks for your reply. I was able to manage to get xml, is there a simple way with simple steps to use JSON? If you have any steps/screenshots I would appreciate.
    Thanks
    Edited by: user10475179 on Dec 6, 2011 2:24 PM

  • Proxy business services in osb

    In osb if i want to get data from a client then what is the procedure
    I am using a business service whose endpointuri is a proxy service (protocol http)
    And this business service is inturn called by my local proxy service
    Is this procedure correct ?
    if not then what is the correct procedure how many proxy and business services do i need to get data from my client
    Thanks,
    Rahul

    How many Proxy Services and Business Services to use depends on the use case.
    For example, if your client will initiate a transaction when it has some data to send to another system then you will have to configure following flow:
    First system (wants to send some data)--> Proxy Service(to receive data from Client) --> Business Service (to call the second system) --> second system web service API
    Another scenario in which you need to get some data from the second system when requested by the first system (query scenario) the above flow would still remain the same.
    Addition of another Proxy service depends on specific use case and scope of re-usability etc. For example if you want to fetch data from a system and that query can be reused in various processes or can also be called from various client applications then you can create a wrapper Proxy above the Business service and call this Proxy Service instead of calling the business service from your Proxy.
    Domain structure also is a deciding factor, for example if you want to call a Proxy in one domain from another domain you can use a Business Service in the requesting domain.

  • Invoking HTTP Restful services using OSB

    Hi,
    We have a reuirement to invoke below three URL's from OSB in sequence .
    like
    1.http://<IP Address:Port>/login
    2.http://<IP Address:Port>/getlist
    3.http://<IP Address:Port>/logout
    I have used three service callouts to invoke the same.
    Login service callout is giving the success response but the 2nd service is throwing the error as "Unauthorized"
    Three url's should be invoked in the same session i.e 2nd service should be invoked in the same session as of login service or else it will give error.
    I have enabled the "Transaction Required" flag and also set the QoS to "Exactly Once" but still giving the error.
    Can anybody please let me know if there is any another way to maintain the session.
    Thanks in advance.

    401 Unauthorized most likely means you have lost a cookie.
    On your first call to login the server sets HTTP header Set-Cookie; you get it back as User Headers. In response flow of the login call you need to get the value of the Set-Cookie and save it into a variable.
    On the second and third call you'll have to set Custom Header "Cookie" to the value you get from Set-Cookie.
    This is purely HTTP mechanism, transactions or QoS have nothing to do with it.

  • What is the best approach to invoke secured REST Services from SOA

    Hi there,
    I've a REST service which expects username and password to access it.
    To Invoke it I'm passing the credentials as properties in composite.xml under <reference> section as shown below.
    <property name="oracle.webservices.auth.username" type="xs:string"
                    many="false" override="may">USERNAME</property>
    <property name="oracle.webservices.auth.password" type="xs:string"
                    many="false" override="may">PASSWORD</property>
    Is there any way to use OWSM to achieve the same?
    Please suggest if there is better approach. I'm Using SOA Suite PS6
    Thanks
    JGun

    For external entities, the best practice is to access the rest service in OSB (as Business Service) and if needed, virtualize the access via an Proxy Service (can be used a Web Service transaction) and than consume the OSB in SOA Suite.

  • TNS timed out error while testing REST service

    4.2
    11g
    Hi There,
    We had a new application which was to get and post data using REST API which connects to an internal server. This works fine when we use the Google Chrome Advance REST application through the browser, but get a TNS timed out when trying through Apex
    Even a simple sql in the SQL workarea in Apex throws the same error
    select utl_http.request( 'http://ourserver.com/api/subscriptions') test
    from dual;
    ORA-29273: HTTP request failed ORA-06512: at &quot;SYS.UTL_HTTP&quot;, line 1130 ORA-12535: TNS:operation timed out
    Any idea, what the issue could be?   Works fine from the browser though using a REST client
    Trying this for the first time.
    thanks,
    Ryan

    Hi Ryan,
    During your installation, did you follow the steps to enable Network Services, which is one of the requirements when using web services in APEX.  You'll find the necessary information in the installation guide.   Also in your utl_http.request call, have you tried specifying a proxy, if one is required?  You might also want to take a look at at apex_web_service API, specifically the make_rest_request function, which might be useful if you're looking to invoke a RESTful Service via PL/SQL in your application.
    Regards,
    Hilary

  • Testing of Restful Service with ECATT

    HI,
    has anyone experience with testing Restful services via ECATT?
    I didn't find any documentation about this.
    BR,
    Oliver

    I figured this out...the context root is NOT the one specified in the @ApplicationPath annotation. The context root has to be specificed in the vendor-specific dd, glassfish-web.xml for example, or the default needs to be accepted.
    The endpoint URI is of the form http://hostname:port/contextRoot/applicationPath/path, where applicationPath is specific with @ApplicationPath and path with @Path.
    Edited by: asarkar on Jul 24, 2011 2:45 PM

  • How to configure proxy services in OSB for Rest based services?

    how to configure proxy services in OSB for Rest based services implemented using Jersey (Rest).
    The Client need to contact OSB proxy servies by posting application/xml using jersey client and OSB proxy service will call the OSB business service.
    i would like to know how to get this request in OSB proxy service and send it to the business service and get the response back.

    I would suggest you refer to the below links:
    https://blogs.oracle.com/jeffdavies/entry/restful_services_with_oracle_s_1
    https://blogs.oracle.com/jamesbayer/entry/using_rest_with_oracle_service
    Hope this helps.
    Thanks,
    Patrick

  • How to create RESTful proxy service in OSB?

    How can I write RESTful web services in OSB?
    We are using OSB 11g.
    I know how to create SOAP proxy service in OSB. I just want to switch to RESTful services from SOAP.

    http://blogs.oracle.com/jeffdavies/2009/06/restful_services_with_oracle_s_1.html
    http://blogs.oracle.com/jamesbayer/2008/07/using_rest_with_oracle_service.html
    http://biemond.blogspot.com/2009/05/osb-rest-service-with-xml-json-output.html
    http://blogs.oracle.com/knutvatsendvik/2009/11/how_to_specify_ampersand_in_a_rest_query-string_osb.html
    Regards,
    Anuj

  • OSB & WLST: changing operational settings for a proxy service via WLST

    Hi all,
    we are trying to change the operational settings for a proxy service via WLST.
    In details we would like to change the "Logs" level (Monitoring section).
    We have a lot of deployed services and our 'deployer people' need an automatic way (via WLST for example) for doing that instead of using the OSB console.
    Thanks in advance
    ferp

    Hi,
    OSB is the Oracle Service Bus. Oracle Service Bus is a configuration-based, policy-driven enterprise service bus.
    The OSB is deployed into an Oracle WebLogic Server instance.
    OSB uses also WLST functionality provided by WebLogic Server.
    Best regards
    ferp

Maybe you are looking for