Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » SeMantic Information Logistics Architecture (SMILA) » Manually add external WSDL invocation to existing BEPL stub
Manually add external WSDL invocation to existing BEPL stub [message #1079360] Sun, 04 August 2013 12:53 Go to next message
Missing name Mising name is currently offline Missing name Mising nameFriend
Messages: 4
Registered: August 2013
Junior Member
Hello:

I have a SOAP/WSDL server up and running. Based on a simple hello-world example (a single function called say_hello that accepts a string and outputs a string), the server exposes an automatically generated WSDL description. For example, I can call localhost:8080/?wsdl and save the WSDL description to a file.

Now, I wish to add the invocation of the say_hello function described in the WSDL to an existing BEPL stub (both files are attached).

Unfortunately, this rather common use-case is not covered by the SMILA help on http://wiki.eclipse.org/SMILA/Documentation/BPEL_Workflow_Processor and I think any solution/how-to on this would be a very useful addition.

I am not familiar with the BEPL Designer at all and would rather know and understand the actual lines required to add to the BEPL stub. From what I understand I need to add a partner link and the actual invocation, but perhaps also some variable copying ... Any hints to other helpful resources on this are welcomed as well.

Thank you in advance!
Re: Manually add external WSDL invocation to existing BEPL stub [message #1080094 is a reply to message #1079360] Mon, 05 August 2013 13:08 Go to previous messageGo to next message
Juergen Schumacher is currently offline Juergen SchumacherFriend
Messages: 35
Registered: July 2009
Member
Hello,

Am 05.08.2013, 14:13 Uhr, schrieb Missing name Mising name
<forums-noreply@xxxxxxxx>:
> Hello:
>
> Now, I wish to add the invocation of the say_hello function described in
> the WSDL to an existing BEPL stub (both files are attached).
>
> Unfortunately, this rather common use-case is not covered by the SMILA
> help on
> http://wiki.eclipse.org/SMILA/Documentation/BPEL_Workflow_Processor and
> I think any solution/how-to on this would be a very useful addition.>

Actually, though it may look like a common use-case it is not done very
often (at
least in our applications) because it's quite awkward to copy the results
from a
webservice into the SMILA record structure in BPEL using XML manipulation.
It's
often easier to write a pipelet that invokes the webservice and do the
result
evaluation in Java (at least for me). There is a How-To on this at
http://wiki.eclipse.org/SMILA/Documentation/HowTo/How_to_integrate_the_HelloWorld_webservice_as_a_Pipelet.

However, if you really want to do this in native BPEL, you can have a look
at
the org.eclipse.smila.processing.bpel.test bundle which is part of the
SMILA source
code. It contains a test case

org.eclipse.smila.processing.bpel.test.TestHelloWorldPipeline,

that calls a HelloWorld-webservice deployed locally in the SMILA test
environment
via the BPEL process in

configuration/org.eclipse.smila.processing.bpel/pipelines/helloworldpipeline.bpel.

The necessary WSDL and XSD files are also located in this directory.
Finally, ODE's deploy.xml
file must have some extra lines to define the partner link:

<process name="proc:HelloWorldPipeline">
<in-memory>true</in-memory>
<provide partnerLink="Pipeline">
<service name="proc:HelloWorldPipeline" port="ProcessorPort" />
</provide>
<invoke partnerLink="HelloWorld">
<service name="hw:HelloWorldService" port="HelloWorldPort" />
</invoke>
</process>

Hope this helps (;

Regards,
Juergen
Re: Manually add external WSDL invocation to existing BEPL stub [message #1080160 is a reply to message #1080094] Mon, 05 August 2013 14:50 Go to previous messageGo to next message
Missing name Mising name is currently offline Missing name Mising nameFriend
Messages: 4
Registered: August 2013
Junior Member
Thank you Juergen! I will have a look at your example on how to go the 'native BPEL' way.

My motivation for not going the pipelet-way was or is: to dynamically add a pipeline via the SMILA REST/JSON interface without writing/installing any local Java code or configuration files. However, now I fear Confused that I still need to locally install the WSDL and/or other description files. Since SOAP-services generate and offer the WSDL on demand, I would think there is a standard to automatically retrieve all those necessary details without first copying them over locally. Anyway, that would be too much asked for now ...

Thank you again.
Re: Manually add external WSDL invocation to existing BEPL stub [message #1080206 is a reply to message #1080160] Mon, 05 August 2013 16:07 Go to previous messageGo to next message
Juergen Schumacher is currently offline Juergen SchumacherFriend
Messages: 35
Registered: July 2009
Member
Am 05.08.2013, 16:50 Uhr, schrieb Missing name Mising name
<forums-noreply@xxxxxxxx>:

> Thank you Juergen! I will have a look at your example on how to go the
> 'native BPEL' way.
>
> My motivation for not going the pipelet-way was or is: to dynamically
> add a pipeline via the SMILA REST/JSON interface without
> writing/installing any local Java code or configuration files. However,
> now I fear :? that I still need to locally install the WSDL and/or
> other description files. Since SOAP-services generate and offer the WSDL
> on demand, I would think there is a standard to automatically retrieve
> all those necessary details without first copying them over locally.

Yes, I assume this should all be possible, but it must be implement.
And as we currently don't have a use case for this it does not have a huge
priority for us.
If you want to contribute something in this area: Go ahead (-:

Regards,
Juergen.
Re: Manually add external WSDL invocation to existing BEPL stub [message #1081032 is a reply to message #1080160] Tue, 06 August 2013 18:05 Go to previous messageGo to next message
Missing name Mising name is currently offline Missing name Mising nameFriend
Messages: 4
Registered: August 2013
Junior Member
Dear Juergen:

I followed closely the HelloWorldPipeline webservice example you point out, but SMILA fails deploying my own BEPL pipeline. Like you explained, I added the files to /configuration/org.eclipse.smila.processing.bpel/pipelines and added an entry in deploy.xml (all quite similar to the HelloWorldPipeline).

The SMILA.log only shows:

...
2013-08-06 18:42:42,093 ERROR [Component Resolve Thread (Bundle 5) ] store.ProcessStoreImpl - Deploy failed; process "{http://www.eclipse.org/smila/processor}TestPipeline" not found in deployment unit "pipelines".
2013-08-06 18:42:42,095 ERROR [Component Resolve Thread (Bundle 5) ] bpel.BpelWorkflowProcessor - Deployment of predefined pipelines failed. Installing custom pipelines should still work.
org.eclipse.smila.processing.ProcessingException: Predefined workflow directory 'pipelines' contains invalid definitions, no workflow from this directory will be available.
at org.eclipse.smila.processing.bpel.internal.DeploymentManager.deployPredefinedWorkflows(DeploymentManager.java:110)
at org.eclipse.smila.processing.bpel.internal.OdeBpelEngine.deployPredefinedWorkflows(OdeBpelEngine.java:139)
at org.eclipse.smila.processing.bpel.BpelWorkflowProcessor.deployPredefinedPipelines(BpelWorkflowProcessor.java:368)
at org.eclipse.smila.processing.bpel.BpelWorkflowProcessor.initializeBpel(BpelWorkflowProcessor.java:345)
at org.eclipse.smila.processing.bpel.BpelWorkflowProcessor.activate(BpelWorkflowProcessor.java:261)
...
Caused by: org.apache.ode.bpel.iapi.ContextException: Deploy failed; process "{http://www.eclipse.org/smila/processor}TestPipeline" not found in deployment unit "pipelines".
...

Is there a way to enable advanced debugging information via the log4j.properties config file to trace down such WSDL/BPEL definition issues?

Thank you.

Markus

Re: Manually add external WSDL invocation to existing BEPL stub [message #1081674 is a reply to message #1081032] Wed, 07 August 2013 14:32 Go to previous message
Juergen Schumacher is currently offline Juergen SchumacherFriend
Messages: 35
Registered: July 2009
Member
Am 06.08.2013, 20:05 Uhr, schrieb Missing name Mising name
<forums-noreply@xxxxxxxx>:

> Dear Juergen:
>
> I followed closely the HelloWorldPipeline webservice example you point
> out, but SMILA fails deploying my own BEPL pipeline. Like you explained,
> I added the files to
> /configuration/org.eclipse.smila.processing.bpel/pipelines and added an
> entry in deploy.xml (all quite similar to the HelloWorldPipeline).
>
> The SMILA.log only shows:
>
> ..
> 2013-08-06 18:42:42,093 ERROR [Component Resolve Thread (Bundle
> 5) ] store.ProcessStoreImpl - Deploy
> failed; process "{http://www.eclipse.org/smila/processor}TestPipeline"
> not found in deployment unit "pipelines".
>
> ...
>
> Is there a way to enable advanced debugging information via the
> log4j.properties config file to trace down such WSDL/BPEL definition
> issues?
>
> Thank you.
>
> Markus

I suppose you could try switching on DEBUG logging for org.apache.ode.
But I think, the message means that the process names in the BPEL file and
the deploy.xml don't match.
These must be consistent:

in BPEL file: <process name="AddPipeline" ...
in deploy.xml: <process name="proc:AddPipeline"> <-- here
<in-memory>true</in-memory>
<provide partnerLink="Pipeline">
<service name="proc:AddPipeline" port="ProcessorPort" /> <-- and
here
</provide>
</process>

Regards,
Juergen.
Previous Topic:WebCrawler issue using with proxy SMILA 1.2
Next Topic:Run BPEL by a servlet
Goto Forum:
  


Current Time: Fri Nov 28 00:43:31 GMT 2014

Powered by FUDForum. Page generated in 0.01981 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software