Invoking External Web service from SOA Application - web-services

I am a beginner in learning Oracle SOA .
can any one share with me how to call global/external web service inside SOA application like "Weather" web service ?

This question is very vague. What exactly are you having problems with? Have you started creating the composite application in Jdeveloper?

For calling a SOAP web service you can use SOAP Adapter in SOA Suite.
Follow the steps below-
Create a new SOA project
Create required XSDs
Open Composite.xml, there are 3 swim lanes- exposed services,
components & external references.
Right click anywhere on external references and select SOAP adapter.
Enter the SOAP URL of target web service and complete the
configuration.
Add a BPEL component under component swim lane and check expose as
service .
Do BPEL orchestration by using assign, invoke activities.
Deploy and test.

Related

SOA Suite - How to automatically enable Web Service Rest support after composite deploy

I have a composite with a SOAP web service entry point running on SOA Suite. We will have a new client for that web service, but this client cannot speak SOAP, so we will have to publish that entry point on a REST endpoint. I know I can enable REST Support to the existing web service through EM console, but I would like to have this configuration enabled by default after deploy.
My research for ways to do that using a property or attribute on a configuration plan did not get useful informations.
Does anyone know how could I achieve that?
Thanks!
REST Support is formal part of SOA Suite 12c. Download and install that and then you can easily add a REST interface to a SOAP composite. Also, 12c now installs without RCU/DB, etc - just start the Integrated WLS domain in JDev and it builds itself and you are up and deploying in under 20 mins. And this may help.

How to convert JBPM project into Web- service?

I have a working JBPM project that i want to expose as a web service so from my server i can call that web-service. So please let me know is there a any way to expose a JBPM project into a web service.
By default, you can use the jbpm-console service to expose the processes you have deployed there as a REST service. You can also expose your project yourself as a web service using for example the camel integration component (and using camel to set up a WS endpoint) or by writing a custom wrapper yourself.

Worklight: Webservice inside customization WAR

Is it possible we can create Webservice inside Worklight customization WAR file? Purpose is to give access to an external application user some resources like adapters from worklight.
It may be possible but I don't think I would suggest it. Write your webservice to run independently of Worklight. Adapters can still connect to your web service even if the web service runs on an entirely separate server.
Let the Worklight WAR be Worklight and let the web service be a web service.

Strategy to develop a web service in JAX WS

i'd like your help to designing a wb serice but I don't know how i can't do this.
In fact my application handles data management clients. My application is developped in struts 1.0, spring, weblogic and build-in maven.
He was asked to me to make an evolution because an external application need to access data such as displaying the address of the client or displaying data bank. For this, it was planned to create a web service to retrieve in real time.
I would like to know the strategy to use for designing a web service. Do I need to create a new Dynamite projet maven + JAX WS to my web service and deploy my war on my weblogic server?
Or they have something else to do ?
Thanks a lot !
I am not sure that this question is related to maven.
Adding a WebService (or RestService) could be quite easy with springframework and apache cxf (http://cxf.apache.org/)
see jaxws or jaxrs for more.
create web service in a two types but real time applications using jax-ws web services reason for consumer want to send data into provider.consumer can know the entire information about the provider by seeing its WSDL Document.

How to expose locally installed application as Web Service?

Suppose I have 2 web services A and B in SOA project. Both web services are running on a remote servers. Web Service A depends on information available from only a locally installed desktop application on a human actor machine and thats all web service A does i.e. provide this information). There are hundreds of such human actors with the same locally installed application providing its own information that web service A needs. Web service B needs this information from web service A, the result of which (which is the whole benefit of this project) is provided to that human actor who originated this process (by loging into system and clicking some command button). So this human actor is acting like the consumer of Web service B. The question is how can I make this locally installed application act as Web Service A (in the context of SOA project)?
This question could best be answered by some one with extensive experience in Web services and SOA.
This SOA project uses java, like ESB based on Java and there is no Microsoft specific services running although the desktop application is a Windows application. The application provides c/C++ API for an external process to call and retrieve the information needed by Web service A. What I want is the both web services A and B are hosted on remote server and interacting with each other via ESB but the problem is how to make local application information available to Web Service A?
There are two types of solutions
The first: have the original client application add a parameter with the address of web service A, and use this address for calling the service.
The second: pass a more abstract user identifier from the client (actually, there's a good chance you have such a field in the service). and use a translation service to retrieve the physical address corresponding to this id.
To allow such translation, the desktop application that acts as a server needs to "register" with the translation service when starting up.
If you are using an ESB, or other SOA infrastructure (like a service directory, message queuing service) it will include much of the functionality you need to build the translation service.
regarding the actual hosting of the service in the client machine.
the simplest solution is to use a different process from the actual application, and just access the files or DB the application uses.
In this case you can use any infrastructure you like to develop the service.
a more complex scenario is when you need the actual application to supply the service. in this case you will need to have a thread in the application that listens to service requests.
if you are using WCF see Hosting Services about how to host a web service in your application.
EDIT
some additions regarding you clarification.
as I understand, the desktop application exposes a C\C++ API that is available for external processes on the same machine.
You can either write a web service that will use this API. Googling "C++ Web Services Windows" will give yo several relevant pointers on implementing those.
Another good option is to use a messaging infrastructure. most JMS providers provide API's in languages other then Java - including C++.
Your application will be a C++ windows service that listens and sends messages to you JMS provider.