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.

Similar Messages

  • 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

  • How to invoke a web service using https

    Hi,
    I have a few security related questions surrounding BPEL process manager.
    1. Does the BPEL engine have the capability to invoke a web service using https (HTTP over SSL)? Does it automatically do that if partner link URI starts with https:// ?
    2. If not, what needs to be done to enable accessing a https based web service?
    3. I need to write a web service that accepts a message and updates certain information in the database. The web service will be deployed in an OC4J instance in Oracle App Server. We want to allow the web service to be accessed from BPEL only by users registered in the database. What is the recommended way to pass username and password to a webservice if service is invoked from BPEL process manager? Note that specifying username/password in bpel.xml is not an option.
    Thanks,
    Pranav

    1. Does the BPEL engine have the capability to invoke a web service using https (HTTP over SSL)? Does it automatically do that if partner link URI starts with https:// ?
    We currently don't have support for HTTP over SSl. We are working on it to include this functionality in near future.
    2. If not, what needs to be done to enable accessing a https based web service?
    I am not sure it is possible with current product offering. I will confirm it after discussing with our concerned development group. There is some work going to integrate with Oblix security mechanism [recently acquired by Oracle].
    3. I need to write a web service that accepts a message and updates certain information in the database. The web service will be deployed in an OC4J instance in Oracle App Server. We want to allow the web service to be accessed from BPEL only by users registered in the database. What is the recommended way to pass username and password to a webservice if service is invoked from BPEL process manager? Note that specifying username/password in bpel.xml is not an option.
    This will be easier to do if we can use Oblix along with BPEL PM. Could you please let us know more about your application so that we can provide you the customized solution till it's part of the product. You can send this query to [email protected] so that our product management team can give you more detailed roadmap regarding this.
    HTH.
    Thanks,
    Rakesh

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

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

  • How to invoke HTTP Web Services in an Adobe Interactive Form

    Hi all,
    I am using Adobe Livecycle Designer stand-alone (without Netweaver integration), currently a trial 8.2 version.
    I need to invoke an HTTP Web Service (non-SOAP) in an Adobe Interactive Form. The Net.HTTP method does not work due to security reasons. The error message I get is:
    (german)
    " NotAllowedError: Sicherheitseinstellungen verhindern den Zugriff auf diese Eigenschaft oder Methode.
    Net.HTTP.request:28:XFA:form1[0]:mysubform[0]:Region[0]:change"
    In english this translates to: "Security settings prohibit the call of this property or method.
    And indeed the "Javascript for Acrobat API reference" includes the following note:
    "Note:This method can only be made outside the context of a document (for example, in a folder level JavaScript)."
    So this method seems to be excluded from use in an Adobe document, e. g. in an interactive form. But why is it then listed at all? Is there a way to call HTTP Web Services in an Adobe Interactive Form by somehow branching out the call outside the document itself? Of course I do not want to call a SOAP service which then calls the HTTP Web Service
    Is there any other way to invoke HTTP Web Services in an Adobe Interactive Form?
    Thanks a lot for your response!
    Regards
    Christoph

    Hi,
    back again, had to handle other issues, sorry.
    Just to get a little more concrete. The condition depends on the context node attributes. So if an attribute is initial, it's field should not been shown, if it's not initial, it should ne shown. There are 6 context attributes and therefore 6 fields in the form. How can I get the attributes' value?
    And can I put them into the same subform or do I have to create 7 (6 conditions + blank-condition) subforms?
    I put the fields (textfield and context node value) that should be shown depending on conditions in a subform. So how can I adress this subform?
    I'm not so familiar with JavaScript, so please help me. I need something like:
    if (context_node_attribute X is initial) {
             subform_1.presence = "hidden" ;
    I tried it with
    if ( ARB_STUNDEN.rawValue != null) {
         Beratungsstunden.presence = "hidden" ;
    but it didn't work....
    Thanks,
    Tan

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

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

  • Rest services using WCF

    Hi,
    Couple of doubts about wcf rest  services.
    1, how a wcf rest service call is made from a asp.net mvc or asp.net web application .
     a, What is the better way to consume in ecommerce application (where traffic is more)
    b, is it using a httpwebrequest obejct or do we need to create a proxy class , can anybody paste a snippet of the code
    consume it ore please suggest a web reference link .
    2, is the web api took over the wcf rest service role  or still it is using in industry.
    Thanks

    Hi techasuran,
    >>1, how a wcf rest service call is made from a asp.net mvc or asp.net web application .
    a,What is the better way to consume in ecommerce application (where traffic is more)
    b, is it using a httpwebrequest obejct or do we need to create a proxy class , can anybody paste a snippet of the code
    For the WCF Rest Service, we can not do the add the service reference as do in WCF SOAP Service, because the REST Service has no concept of a WSDL in WCF. Then if you want to call the WCF Rest Service from a asp.net mvc or asp.net
    web application, please try to use the HttpWebReqest, HttpClient or the Jquery to help us. In my mind the better way to consume the WCF Rest Services in the ecommerce application is to use the Jquery Ajax Calls.
    For more information, please try to refer to the following articles:
    #Call Restful Service using HttpWebRequest:
    http://fromjami.wordpress.com/2013/05/26/call-restful-service-using-httpwebrequest-and-post-data/ .
    #Create and consume WCF Restful Service using an HttpClient:
    http://chsakell.com/2013/07/12/create-and-consume-wcf-restful-service-using-an-httpclient/ .
    #Consume RESTful service using jQuery in 2 simple steps:
    http://www.topwcftutorials.net/2013/10/consume-rest-service-using-jquery.html .
    >>2, is the web api took over the wcf rest service role  or still it is using in industry.
    Web API is open source an ideal platform for building REST-ful services over the .NET Framework. Unlike WCF Rest service, it use the full featues of HTTP (like URIs, request/response headers, caching, versioning, various content formats). It also supports the
    MVC features such as routing, controllers, action results, filter, model binders, IOC container or dependency injection, unit testing that makes it more simple and robust.
    For more information about the difference betwwen the WCF Rest Service and Web API and how to choose betwwen them, please try to refer to the following articles:
    #Difference between WCF and Web API and WCF REST and Web Service:
    http://www.dotnet-tricks.com/Tutorial/webapi/JI2X050413-Difference-between-WCF-and-Web-API-and-WCF-REST-and-Web-Service.html
    #WCF or ASP.NET Web APIs:
    http://www.codeproject.com/Articles/341414/WCF-or-ASP-NET-Web-APIs-My-two-cents-on-the-subjec .
    Best Regards,
    Amy Peng
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Issue in inovking https siebel  service from OSB

    hi,
    we are trying to invoke https siebel webservice from OSB and getting the following error.
    The invocation resulted in an error: [Security:090504]Certificate chain received from siebelhostname.oracle.com - 11.12.123.134 failed hostname verification check. Certificate contained *.oracle.com but check expected siebelhostname.oracle.com.     
    please advise.this is very urgent.
    Regards,
    KK

    Please disable the host name verification at Weblogic (all OSB servers). Certificate CN (*.oracle.com) is not same as server host name (siebelhostname.oracle.com).
    http://docs.oracle.com/cd/E17904_01/apirefs.1111/e13952/taskhelp/security/DisableHostNameVerification.html
    From Weblogic 10.3.4 onwards there is a patch available to enhance the existing default BEA hostname verifier to include wildcard certificates and wildcard host name verifier is available in Weblogic 10.3.6 OOB.
    Regards,
    Anuj

  • Invoke External HTTPS Web Service from OSB 11G

    Hi,
    We have a requirement to invoke a HTTPS web service hosted by third-party and we have to send HTTP basic authentication detials also.
    Third party given us the HTTP basic authentication details and only certificate nothing else.
    After some research service account can be used for basic authentication and service key provider for https requirement.
    But before service key provider creation there are steps to import the certificate into weblogic server and do some config steps (PKI cred mapping and all )I have gone through the forums but i am new to OSB and SSL i could not understand.
    Can some one help with detailed steps.
    Thanks in Advance
    Srikanth

    You can simply use "Execute Script" operation in Workbench and make use of java.net.URL. Below links should help :
    http://www.mkyong.com/webservices/jax-rs/restfull-java-client-with-java-net-url/
    http://www.adobe.com/devnet/livecycle/articles/building-xml.html
    http://help.adobe.com/en_US/livecycle/9.0/workbenchHelp/help.htm?content=000581.html
    Hope this helps.
    -Wasil

  • OSB -How to communicate with a Asynchronous SOAP Service using OSB

    Hi,
    I am new to OSB and I need some help in working with Asynchronous SOAP Service.
    Test Case : OSB --> Proxy Service --> Business Service-->External Service pointing to Asynchronous service WSDL.
    While testing the proxy service using sb console i don't get a response back.
    After some googling I found out the following:
    ->We need to create another Proxy service for listening to callback from that Asynchronous service.
    ->Setting the "WS-replyTo" in header variable while sending the initial request to Business Service(pointing to Asynch wsdl).
    Even after this I am not getting some response.
    Questions :
    1. Can someone let me know in detailed way(end to end) what has to be done to achieve this ?
    2. The Asynch wsdl exposes only one port in the <service> tag ie., which is haing the binding related to "process" operation. ( but not processCallback operation)
    So in this case how do i make my responseProxy service listen to callback port ? When I try to do I just see the process binding only.
    Thanks and Regards,
    Sridhar.

    Vernetto,
    I am not sure about the publish, but yes we can do this without JMS also. Please refer to this post which is quite helpful which routes back to a proxy service.
    http://eelzinga.wordpress.com/2010/03/23/oracle-service-bus-invoke-asynchronous-webservices/
    Regards,
    Sridhar.

  • Not able to invoke ATG  Rest services

    Hi,
    I'm new ATG Rest service, To just create a dummy rest service I followed the below steps.
    1. added REST module in MANIFEST.MF file
    ATG-Required: DAS DPS DSS DCS B2CCommerce DAS REST
    2. created restSecurityCnfiguration.xml under atg/rest/seurity and following is the content of this file
    <programlisting>
         <rest-security>
              <default-acl value="Profile$login$admin:read,write,execute" />
              <resource component="/atg/service/TestComponent" secure="false"/>
         </rest-security>
    </programlisting>
    3. Created a TestComponent in my existing application and created a method testName
    public class TestComponent {
         public String getTestName(){
              return "arvind";
    4. Deployed my application on jboss.
    Now I'm trying to invoke this from a java class
    protected void execute() throws RestClientException {
              String mUsername = "admin";
              String mPassword = "admin";
              String mHost = "localhost";
              int mPort = 8080;
              RestSession mSession = null;
              RestResult result = null;
              mSession = RestSession.createSession(mHost, mPort, mUsername, mPassword);
              mSession.setUseHttpsForLogin(false);
              mSession.setUseInternalProfileForLogin(false);
              try {
                   mSession.login();
                   println("Login Successful");
                   result = RestComponentHelper.executeMethod("/atg/service/TestComponent", "testName", new Object[] {}, null, mSession);
              catch (Throwable t) {
                   println(t);
              } finally {
                   try {
                        mSession.logout();
                        println("Logout Successful");
                   } catch (RestClientException e) {
                        println(e);
    ----------------------------------------------------------------------out put ---------------------------------------------
    Login Successful
    atg.rest.client.RestClientException: java.io.IOException: Unauthorized Server returned HTTP response code: 401 for URL: http://localhost:8080/rest/bean/atg/service/TestComponent/testName
         at atg.rest.client.RestSession.createHttpRequest(RestSession.java:755)
         at atg.rest.client.RestComponentHelper.executeMethod(RestComponentHelper.java:252)
         at com.techm.restclient.RestClientSample.execute(RestClientSample.java:63)
         at com.techm.restclient.RestClientSample.main(RestClientSample.java:87)
    Caused by: java.io.IOException: Unauthorized Server returned HTTP response code: 401 for URL: http://localhost:8080/rest/bean/atg/service/TestComponent/testName
         at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
         at atg.rest.client.RestSession.createHttpRequest(RestSession.java:745)
         ... 3 more
    Logout Successful
    Even if I provide any username and password, which don't even exist, it says login succussful but while invocation it fails. Please help me here,
    What is default user I can use? or way to create new user ?
    Thanks in Advance,
    Arvind
    Edited by: Arvind Pal on Oct 4, 2012 10:21 AM
    Edited by: Arvind Pal on Oct 4, 2012 10:22 AM

    I created a user through ACC, and made the following changes.
    <programlisting>
         <rest-security>
              <default-acl value="Profile$login$arvind:read,write,execute" />
              <resource component="/atg/service/TestComponent" secure="false"/>
         </rest-security>
    </programlisting>
    and now I'm getting the loginStatus i.e userid of user "arvind".
    But while executing the invocation of web service call I'm getting the same exception.
    Do we need to give some permission somewhere for this user ? or I'm doing something wrong with restSecurityConfiguration.xml
    Login status[390002]
    Login Successful
    atg.rest.client.RestClientException: java.io.IOException: Unauthorized Server returned HTTP response code: 401 for URL: http://localhost:8080/rest/bean/atg/service/TestComponent/getTestName
         at atg.rest.client.RestSession.createHttpRequest(RestSession.java:755)
         at atg.rest.client.RestSession.createHttpRequest(RestSession.java:722)
         at atg.rest.client.RestComponentHelper.getPropertyValue(RestComponentHelper.java:182)
         at com.techm.restclient.RestClientSample.execute(RestClientSample.java:98)
         at com.techm.restclient.RestClientSample.main(RestClientSample.java:128)
    Caused by: java.io.IOException: Unauthorized Server returned HTTP response code: 401 for URL: http://localhost:8080/rest/bean/atg/service/TestComponent/getTestName
         at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
         at atg.rest.client.RestSession.createHttpRequest(RestSession.java:745)
         ... 4 more
    Logout Successful
    Edited by: Arvind Pal on Oct 4, 2012 12:36 PM

  • Oracle Service Bus 10.3 - Invoke a REST service in split join flow

    Hi
    I am using WebLogic Workshop to design a split-join service that needs to call 2 services and combine their responses.
    Service A - WSDL based service
    Service B - REST service
    In the split join flow I am able to invoke Service A just fine. However I do not have a way to call Service B. When I open the invoke dialog it only list WSDL based services.
    Does this mean in a split join I can only invoke WSDL based services or is this a bug in Weblogic Workshop.
    I can get around this by creating a WSDL based proxy that calls the REST service but was hoping I do not have to go down this route.
    Any guidance is appreciated.
    Thanks,
    -Nilay

    I think that Split-Joins are implemented in BPEL. Just look at your .flow file and you will see all those BPEL directives. That's why you probably need your service to be described by WSDL, so you are probably on the right way.
    http://technology.amis.nl/blog/1273/invoking-http-services-from-oracle-bpel-pm-soa-enabling-php-servlets-rss

  • 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

Maybe you are looking for