目錄
環境:
1、Axis 2插件
2、BPEL插件
3、Tomcat
一、發佈ODE服務
1、在需要發佈爲ODE服務的Java函數的類上 右鍵->New->Other->Axis2 Service Archiver->Next
2、選擇.class文件所在目錄,並點擊Next
3、勾選Skip WSDL,點擊Next
4、添加 dom4j.jar和jaxen-1.1.6.jar兩個包
5、勾選 Generate the service xml automatically,點擊 Next
6、如下所示,輸入 Service Name,定位需要發佈爲服務的 Class name,並勾選 Search declared methods only,選擇需要發佈爲ODE服務的方法
7、輸入Output file location和Output File Name,Output file location一般爲.../apache-tomcat-xxx/webapps/ode/WEB-INF/services
8、打開ODE服務器,並保存發佈的ODE服務爲WSDL文件。
二、創建BPEL工作流
1、創建BPEL工程
啓動Eclipse,點擊File->New->Other,然後選擇BPEL 2.0 ->BEPL Project,在彈出的對話框中輸入項目名Stream_bpel。
2、創建BPEL流程
右鍵項目Stream_bpel,點擊New->Other,選擇BPEL 2.0- > New BPEL Process File,出現New BPEL Process對話框,輸入流程名Stream_Process,名字空間設爲:下拉選擇,點擊Next。
下一步選擇同步流程。
最後點擊Finish。
3、BPEL流程設計
打開空間視圖,Window->Show View->Palette
以上操作均提供可視化控件,通過拖放即可完成BPEL流程設計,一個簡單的調用WPS服務的流程,Assign_wps爲WPS服務參數賦值,Invoke_wps調用WPS服務,Assign_output將結果賦值給輸出。
4、導入調用WPS服務的wsdl文件
把從ODE下載的wps_service.wsdl複製到工程目錄下。
- 爲Invoke創建Partner Link
打開屬性視圖,Window->Show View->Properties,然後點擊bpel流程中的invoke_wps節點,在Properties中選擇Details選項卡,創建一個Partner Link,輸入name,選擇來自工程的服務例如wps_servicePortType。
點擊OK,然後輸入Partner Link Type Name。
最後輸入一個Role Name即可,點擊Finish。
雙擊Quick Pick中對應的函數名,Operation參數會自動添加,並自動創建該函數所需的參數變量。
賦值操作
bpel流程需要從外部傳入參數,並將結果輸出,由Assign操作來完成,Assign作用相當於“管道”,但是該操作只是負責向下傳遞參數。
添加bpel輸入參數。
設置參數名稱。
- wps服務參數賦值
選中Assign_wps節點,Properties->Details->new,從From裏選擇變量,賦值給To裏的變量,每增加一個就New一次,如圖6-3-19。
- 將結果賦值給輸出,BPEL流程賦值結束
- 修改SOAP地址
stream_process對應的stream_processArtifacts.wsdl文件的Server的SOAP地址需要手動修改,默認生成的地址位於Tomcat服務器中:http://localhost:8080/stream_process,需要修改到ODE服務器下:http://localhost:8080/ode/processes/stream_process,Ctrl+S保存。
- BPEL流程發佈
BPEL流程最終的目的也是發佈成一個web-service,只不過這個web服務自己基本上不實現功能,主要是通過調用別人的功能來完成任務。因此,最後也要把流程對應的WSDL發佈出去。默認生成的WSDL只有類型定義,消息定義,和操作定義,缺少綁定信息和服務定義。
在bpel工程的bpelContent文件夾中創建一個deploy.xml文件。選擇File->New->Other->BPEL 2.0 Apache ODE Deployment Descriptor,點擊Next,直接Finish即會生成一個deploy.xml文件。
雙擊打開deploy.xml文件,配置Partner Link端口。client對應BPEL流程端口,選擇stream_processPort;wps對應調用的外部服務wps_service端口,選擇SOAP端口:wps_serviceHttpSoap11Endpoint。
BPEL運行與測試
(1)在Eclipse中配置 ODE Server, 打開Servers 視圖,Windows->ShowView->Servers。
在 Servers視圖中點右鍵,選擇New->Server,選擇Ode v1.x Server,開始配置。
主要是配置ODE和Tomcat 的目錄,要注意的是ODE的目錄是你安裝在Tomcat下的目錄,而不是你把ODE的壓縮包解壓的地方。
配置完後就可以在eclipse 的 servers 視圖中啓動和停止ODE了。(在啓動ODE時,Tomcat 也會啓動,不需要單獨去啓動Tomcat)。
(2)啓動ODE服務器,添加bpel工程到ODE服務器,在ode server上右擊,打開Add and Remove…,將左側工程添加到右側,點擊Finish。
(3)查看Console消息,出現以下消息說明註冊成功。
INFO [BpelServerImpl] Registered process {http://eclipse.org/bpel/sample}stream_process-537. |
(4)測試服務。在stream_processArtifacts.wsdl文件上右擊,打開Web Service Explorer,Web Services->Test with Web Service Explorer,進入process測試界面,填入參數,點擊Go運行。