目录
环境:
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运行。