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
VasuHi 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,
Pranav1. 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
JGunFor 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
ChristophHi,
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
ferpHi,
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!
ferpHi,
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 -
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.
ThanksHi 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,
KKPlease 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
SrikanthYou 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 AMI 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,
-NilayI 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 PMThanks 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
-
"Attempting to copy to the disk "ipod" failed. The disk could not be read from or written to." it starts to update, error messages, syncs photos, and then says its done. but the recent songs arent updating. tried reflash/restart. help?
-
Windows 8.1 with a 24" Cinema Display?
Where can I get actual drivers for the cinema display on windows 8.1? It only detects as Generic PnP monitor, and I can't use the awesome iSight camera with it at all...device manager shows driver warning :/ Tried downloading bootcamp, but says it c
-
Requirement for getting the VAT Taxes automatically from the vendor invoice
Dear All, We Have a Requirement for getting the VAT Taxes automatically from the vendor invoice in to the Sales invoice after invoice verification process.Is this feasible?. Can anybody explain how this can be done to overcome this issue. Thanking yo
-
Hi this is my first time to ask a question here in this community. I am a system administrator here at my work and we are having some issues on some servers that we handle. Network in our office is stable and we have determined it is not a problem on
-
Having downloaded Yosemite it installed fine on my iMac but on my Macbook Pro installation has frozen at the Disc Selection stage (where you want it to install) with the message 'This disc is used for Time Machine Backups'. I cant find a way past th