|How do I create the wrapping WSDL for a BPEL process? [message #988401]
||Thu, 29 November 2012 18:14
| Roco Escalera
Registered: November 2012
I've been doing some research on BPEL for about two weeks now and still don't quite get it.|
I have deployed the HelloWorld sample in ODE and have also managed to deploy this other one:
An Example Of BPEL invoking WebService - from Code Project
My intention was to do something like the second example but with my own real WS deployed and working.
I'm now at the point of having a Process with no errors and correctly deployed in ODE with the following structure:
I have started the project from a service definition importing my Multiply.wsdl. The Designer has composed the import tag into the MuktiplyProcessArtifacts.wsdl next to the PartnerLinkTypes all automagically so I assume all namespaces, etc are ok.
There is a few concepts I misundertand in order to make all of this work:
1. In my original Multiply.wsdl I have
<port name="MultiplyImplPort" binding="tns:MultiplyImplPortBinding">
<soap:address location="localhost:8090/WS-multiply/multiply" />
but ODE tells me my soap:address must have the form host.port/ode/processes..
This doesn't sound reasonable to me since my WS could be implemented anywhere outside my ODE_HOME.
2. The second example I mentioned before explains how the Designer presumably creates a "Caller.wsdl", which in fact has the function I would desire, which is to implement a "wrapper" WSDL, providing the BPEL process with entry and exit points. The issue is the Designer does not generate that interface. Am I supposed to create it myself? Do I have to create it at all?
3. If that 3rd wsdl is really needed, is that the wsdl I would have to call if I wanted to test the whole process?
EDIT: Sorry, I had to omit the link to the mentioned bpel sample. It should be the first one showing in Google. I also had to cut the http part for soap:address in my code since the forum wouldn't allow me to post "links"....
[Updated on: Thu, 29 November 2012 18:20]
Report message to a moderator
|Re: How do I create the wrapping WSDL for a BPEL process? [message #988751 is a reply to message #988401]
||Sun, 02 December 2012 18:11
| Robert Brodt
Registered: August 2010
Location: Colorado Springs, CO
Welcome to the wonderful world of BPEL
To answer your questions:
1. Unfortunately there is no consistency in the way that various BPEL runtime implementations define their process endpoints, as you have already discovered. You will have to modify the "caller.wdl" to conform to the runtime engine's requirements - in the case of Ode, it needs to end with "ode/process/<process_name>". You can specify the endpoint in the New BPEL File wizard when you create new process files.
2. The generated "<process_name>Artifacts.wsdl" is the "caller.wsdl" you are looking for. If you open that thing with the STP WSDL editor, you can view and edit all of the endpoints, operations and message definitions.
3. After you have successfully deployed your process, you can verify if it's actually working using the STP Web Services Explorer. Right-click on the artifacts wsdl, and then navigate to the Web Services Explorer as shown here:
In the explorer, navigate to the operation and enter your input message, like so:
Hope this helps, let me know if you need further clarification.
Powered by FUDForum
. Page generated in 0.08512 seconds