Prerequisites:
- A simple up and running Webservice (Refer this post to if you want to learn how to write a simple Axis2 Webservice with Eclipse)
- WSO2 BPS
- WSO2 developer studio plug-in installed Eclipse
- Apache Tomcat 7.0.47
- Apache ODE war distribution
- JDK 1.7/1.6
Create New Server Runtime Environment for Apache ODE
1. Copy the ode.war to apache-tomcat-7.0.47/webapps directory and start the server. when you see the ode directory created under apache-tomcat-7.0.47/webapps directory, stop the server.
2. Configure the server runtime as follows:
Create BPEL Project
1. Create a new BPEL project as follows:
2. In the next dialog, provide a project name and select the target runtime as Apache ODE. Click Finish.
3. Write click on the project and create a "New BPEL process file" (Same as step 1). Fill the dialog accordingly and make sure you select the Template to 'Synchronous BPEL Process' and click finish.
4. Copy the Hello.wsdl file inside bpelContent folder in Eclipse project.
Sample Hello.wsdl is attached.
5. Open the .bpel file design view. You should be able to see the Palette in the workspace with all the gadgets required to create the BPEL workflow.
6. Drag and drop two Assign actions and an Invoke action as follows:
7. Click on Invoke and rename it to 'invokeHelloService'
8. In the Properties Dialog, click on 'Details' tab.
9. Select 'Create Global Partner link' from Partner Link drop down. A popup will Open.
Provide a 'Partner Link Name' (any meaningful name is sufficient) and click Ok. Choose 'HelloPortType' as depicted below and click Ok.
Provide a 'Partner Link Type Name' (any meaningful name is sufficient) and click Next. Give a 'Role Name' and click Finish.
10. Under the Properties dialog there is a 'Quick Pick section'.
Select 'greetingInSinhala' from that and double click on it.
You will noticed that the Input/Output variables are generated as follows. Save the changes made.
11. Now it is time to pass the input parameters to the Hello service. In order to do that we have to click on 'Assign' action. In Properties dialog click on 'Details' tab.
12. Click on New and do as depicted below and hit Save. You will be prompted for Initializer dialog. Click yes.
Here you will assign the input for the Hello Webservice from BPEL input payload.
13. Likewise in 'Assign1' action do the same as follows and hit Save.You will be prompted for Initializer dialog. Click yes.
Here you will assign the output received from Hello Webservice to BPEL output payload.
14. Write click on the project and create new 'Apache ODE Deployment Descriptor'. Do the configuration as follows:
15. Create a ZIP archive as follows:
Now the BPEL is ready.
Deply BPEL Project in WSO2 BPS
1. Start the WSO2 BPS and access the carbon console (https://1localhost:9443/carbon/). Login as admin user with admin/admin credentials.
2. Under 'Manage' section click on 'Processes' -> 'Add'. Upload the Zip.
3. Now you can see the uploaded BPEL under 'Processes' -> 'List'.
4. Click on the 'Process ID'. You will see a dialog simillar to below:
5. Use try it and you will get a response as follows:
That is it. Happy Orchestration with BPEL :)