Problem solve Get help with specific problems with your technologies, process and projects.

How do I invoke Java code from BPEL?

How do I invoke Java code from BPEL?

There are three basic strategies for incorporating Java code into your BPEL process:

1) Wrap your Java code as a Web service 

2) Use Java binding to call Java code as if it were a Web service 

3) Embed your Java code in a BPEL process with a Java extension for BPEL

Wrap Java code as a Web service:

Use a service publishing toolkit, e.g. Apache Axis and Systinet WASP. Add a partnerLinkType to your non-BPEL Web service WSDL to be able to call it from BPEL process. With this approach, only your service publishing toolkit needs access to your Java classes at design and run-time, since the actual protocol for communicating with the Web service will be standard SOAP and XML. Use Java binding to call a Web service:

A BPEL engine can make use of a framework such as WSIF (Web Services Invocation Framework, http://ws.apache.org/wsif) to invoke the Java class[es] directly from your BPEL process as if it were a Web service. This framework enables BPEL to invoke resources which aren't Web services, as if they were a Web service. The Java binding, specifically, has the benefit that you get the performance of a native Java call, however you will have to write a WSDL that describes the interface to your class[es].

Invoke Java code directly from a BPEL process:

Use the extension to BPEL to embed and execute native Java code within a BPEL process. A BPEL engine supporting this standard extension, maps from XML variables in BPEL to Java code, enabling Java access to in-process data. Java classes can be added arbitrarily and used within the process.

Dig Deeper on Topics Archive

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.