blob: 5b8dfa99817b9d45ff5f1848977ce3d9df40077a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<cheatsheet title="&quot;Hello World&quot; Tutorial">
<intro>
<description>This cheatsheet will guide you through the creation,
deployment and execution of the classic "Hello World" BPEL
process.</description>
</intro>
<item dialog="true" skip="true" title="Create a BPEL Project">
<description>In order to associate a BPEL process and its related
artifacts (WSDL and XSD files) with an appropriate runtime, you must first
create a BPEL project. If you are interested in using the BPEL Designer
for modeling or documentation purposes only and do &lt;b&gt;not&lt;/b&gt;
intend to deploy the process for execution, then you can skip this step; a
BPEL process file can actually be created in any type of
project.<br /><br />To create a BPEL Project, select "File &gt; New &gt;
Project... &gt; BPEL 2.0 &gt; BPEL Project" from the main
menu.<br /><br />On the first page of the New Project wizard, enter the
project name "HelloWorld" and click Finish.</description>
<command required="false"
serialization="org.eclipse.ui.newWizard(newWizardId=org.eclipse.bpel.runtimes.wizards.newBPELProject)" />
</item>
<item dialog="true" skip="true" title="Create a BPEL Process file">
<description>Next select a target folder in your project where the BPEL
process file and its artifacts will be created. If you have created a BPEL
Project, it will contain a folder called "bpelContent" which is intended
to be used for containing all of your BPEL resources.<br /><br />From the
"File" main menu, or from the popup (right-click) menu of the Navigator or
Project Explorer views, select "New &gt; New BPEL Process
File".<br /><br />On the first page of the New File wizard, enter the
process name "HelloWorld" and select a namespace for your process. A
namespace is simply a URI that declares the context of your business
process' variables, and other identifiers so that they do not collide with
identifiers in other web services that your process may eventually
use.<br /><br />Next, select a process template. The New File wizard
defines three types of templates: Asynchronous, Empty and Synchronous. For
this tutorial, select the "Synchronous Process" template and click
"Finish".</description>
<command serialization="org.eclipse.ui.newWizard(newWizardId=org.eclipse.bpel.ui.newFile)" />
</item>
<item skip="true" title="Edit the BPEL Process file">
<description>When the BPEL Designer opens it will display a skeleton of a
simple request-response process which consists of a Receive activity, an
empty activity labeled "FIX_ME-Add_Business_Logic_Here" and a Reply. The
arrows connecting these activities indicate the process flow from top to
bottom, or from left to right depending on your choice of
layout.<br /><br />At this time, if the Property View is not visible you
can open it from either the BPEL Designer's popup menu ("Show in
Properties") or from the main menu by clicking "Window &gt; Show View &gt;
Properties".<br /><br />Click on the "Fix Me" activity and select the
Details tab in the Property Sheet and select action 4 (Assign) which will
replace the empty activity with an Assign. This will also display the
Assign activity properties in the Details tab of the Property Sheet. You
may want to change the name of the "Fix Me" to something more appropriate,
for example "Build_Response_Message". You can do this using either the
in-line editor on the Design Canvas (select the Assign activity, then
click again to begin editing the text label) or using the Description tab
of the Property Sheet. When done, switch back to the Details tab of the
Property Sheet.<br /><br />The Assign Details tab consists of an
(initially empty) list of assignment operations, and two empty "From" and
"To" combo boxes. The assignment list has four buttons labeled "New"
"Delete", "Move Up" and "Move Down", which are used to manage the list of
assignment operations.<br /><br />Click the "New" button to add a new
assignment operation to the list. Notice that the "From" and "To" combo
boxes are now active and display "Variable". These allow you to select the
source and target items' categories ("Variable", "Expression", "Fixed
Value", etc.). Also notice that additional selection/data entry widgets
appear below the "From" and "To" combo boxes. These will change based on
the source and target item categories selected in the combo boxes, but
initially they show tree selection widgets for the input and output
variables that were automatically created by the New File
wizard.<br /><br />Select "Expression" in the "From" combo box; this will
display an XPath expression editor widget. Notice that BPEL allows you to
define which version of XPath you wish to use for each expression
although,only XPath 1.0 is supported at this time.<br /><br /> In the
XPath expression editor, enter the following:<br /><br />concat("Hello,
".$input.payload/tns:input)<br /><br />As you type, the editor widget
provides a popup list of valid proposals; this can also be activated by
typing CTRL-Space.<br /><br />In the tree selection widget under the "To"
combo box, expand the "output" variable and navigate down to the "result"
string element. The assignment operation list should now show "Expression
to Variable"; click on this entry in the list. The action of changing
focus from the "To" tree selection widget to another widget, triggers
validation of the assignment operation and a popup dialog asking if you
want to initialize the output variable should appear; click "Yes" to do so
now.<br />The BPEL Designer will automatically insert another entry in the
assignment operations list labeled "Fixed Value to Variable". Select this
entry in the list and you will see an XML fragment that corresponds to the
structure of the output variable. A "Selection Failure Fault" will result
if the BPEL engine encounters a variable that has not been properly
initialized. <br /><br />This completes the "HelloWorld" process; select
"File &gt; Save" to save the process and then close the
editor.</description>
</item>
<item skip="true" title="Create a Deployment Descriptor file">
<description>A Deployment Descriptor is simply a manifest of the BPEL
artifacts. It describes the services provided and their interfaces, to the
BPEL runtime engine. To create a Deployment Descriptor select the project
folder that contains your BPEL artifacts, then from either the "File" main
menu or the Navigator or Project Explorer popup menu select "New &gt; BPEL
2.0 &gt; Apache ODE Deployment Descriptor". <br /><br />Finish the New
wizard and the Deployment Descriptor editor will open. <br /><br />In the
"Inbound Interfaces (Services)" section, click on the "Associated Port"
combo box and select the "HelloWorldPort". Leave all other settings as
they are and then save and close the editor.</description>
</item>
<item skip="true" title="Create a JBoss BPEL Server">
<description> These last steps assume that you have already installed
either:<br /><br />JBoss Application Server version 5.1.0 and RiftSaw 2.2,
the BPEL engine, or<br />JBoss Enterprise Application Platform 5.0 or
later.<br /><br /><b>CAUTION: make sure the server you intend to use for
testing is not a production environment!</b><br /><br />Open the Servers
View by selecting "Window &gt; Show View &gt; Servers" from the main
menu.<br /><br />From the Servers View popup menu or from the "File" main
menu, click "New &gt; Server"<br /><br />Select either the "JBoss
Community &gt; JBoss AS 5.1" or "JBoss Enterprise Middleware &gt; JBoss
Enterprise Application Platform 5.x" server.<br /><br />Finish the New
Server Definition wizard but do not add the HelloWorld service on the last
page of the wizard.<br /><br />Start the server by selecting it in the
Servers View and clicking the "Run" menu button.</description>
<command required="false"
serialization="org.eclipse.ui.browser.openBrowser(url=http://www.jboss.org/riftsaw/,tooltip=JBoss Riftsaw BPEL Engine)" />
</item>
<item skip="true" title="Deploy the BPEL Process to the JBoss BPEL Server">
<description>Select the newly created server in the Servers View and from
the popup menu, click "Add and Remove..."<br /><br />In the Add and Remove
Wizard, select the HelloWorld process and click "Add".<br /><br />The
server should log some messages to the Console View indicating that the
BPEL process has been deployed successfully. If you see deployment error
messages then something is wrong with the BPEL process; if you see no
messages at all, then the Riftsaw engine was not installed
properly.</description>
</item>
<item skip="true" title="Test the BPEL Process">
<description>Assuming "HelloWorld" was successfully deployed, you can now
test your service. <br /><br />Select the "HelloWorldArtifacts.wsdl" file
in your BPEL project and from the popup menu select "Web Services &gt;
Test with Web Services Explorer".<br /><br />In the Web Services Explorer
browser, navigate to the HelloWorld "process" operation in the "Navigator"
panel on the left, and then enter the word "world" in the "Actions" panel
on the right, then click "Go"<br /><br />The Riftsaw engine will log some
more messages to the Console View indicating that it has processed the
message, and you should see the response "Hello, world" in the "Status"
panel on the bottom-right.<br /><br />Congratulations! You have just
created your first BPEL process.</description>
</item>
</cheatsheet>