WSO2 Business Process Server(BPS)详细教程:结合Application Server服务(附源码下载)

4 篇文章 0 订阅
4 篇文章 0 订阅

-------------- 本栏目由ChiChi同学特约播映 -------------

======= 同时鸣谢115网盘提供的下载空间 =======


************* 看完之后请点击页面下方的"顶" ************


一.配置BPEL开发环境

需要在Eclipse EE中安装BPEL插件
参考: http://blog.csdn.net/xiaoanian/article/details/7080015


二.BPEL工程配置

1.建立BPEL工程



2.添加BPEL文件

注意Template一定要选择Synchronous BPEL Process


Service Address是将来要部署到BPS上之后的地址(......因为这个属性是用在单独运行的时候,而咱们是在BPS中用,不知道可不可以随便填)



3.添加Application Server中的HelloService的WSDL

为了使用HelloService,我们要用到它的WSDL文件

打开HelloService的WSDL1.1(不能用WSDL2),另存为HelloService.wsdl



复制HelloService.wsdl到工程bpelContent目录下


 

在HelloServiceProcess.bpel中添加<bpel:import>标签,将HelloService.wsdl 导入进来, 注意其名空间是HelloService.wsdl 中指定targetNamespace



三.添加名空间

1.在HelloService.wsdl中添加xmlns:plnk名空间,从HelloServiceProcessArtifacts.wsdl拷过来



2.在HelloServiceProcess.bpel中添加xmln:ns名空间,从HelloService.wsdl拷过来.

这个名空间其实是HelloService.wsdl中指定的 targetNamespace.

拷到bpel中是为了能引用HelloService.wsdl的定义元素 (跟java的import差不多).
如果要添加更多的wsdl,这一步也不可少,并且要保证名空间前缀唯一,比如不能在不同的wsdl中
都出现xmln:ns而指向不同的名空间.



鉴于xxx,lcx,cy,gg等战斗在抗击chichi一线的劳动妇女对名空间甚为疑惑, 并且考虑到恐怖的run丰肯定也会confused,专门贴一张图

来解释一下名空间.




四.添加代码


1.在HelloService.wsdl中添加<plnk:partnerLinkType>,这就是刚才我们添加xmlns:plnk名空间的原因


下面我们转到HelloServiceProcess.bpel中


2.在<bpel:partnerLinks>中添加<bpel:partnerLink>,指向HelloService.wsdl中的partnerLinkType

注意是partnerRole而非myRole.



3.在<bpel:variables>添加中间变量,做为HelloService的输入输出



4.在<bpel:sequence>添加<bpel:invoke>,添加到<bpel:receive>和<bpel:reply>之间

这一步就是调用App Server的HelloService服务



5.点击编辑窗口左下方的Design,我们看到如下的流程



6.再回到Source,还要添加消息类型转换模块.因为整个process输入的变量是"input"(类型是tns:HelloServiceProcessRequestMessage,在HelloServiceProcessArtifacts.wsdl中定义),而我们调用的HelloService服务的输入是"service_input"(类型是ns:greetRequest,在HelloService.wsdl中定义),因此必须要进行类型转换.类型的转换要用到<bpel:assign>.该过程相对复杂,不宜手动编写代码,需要自动生成.我们先在<bpel:invoke>前后分别添加<bpel:assign>,取名为assignInput和assignOutput,不填任何内容,现在我们看到报错,不要紧,往下看


7.点击Design,进行如下操作

编辑assignInput


 

编辑assignOutput



8.添加deploy.xml
右键bpelContent文件夹->new->others->BPEL2.0->Apache ODE Deployment Descriptor, next->finish




双击打开,
在client 那行的 Associated Port 列选择HelloServiceProcessPort,其他列自动完成
在helloServiceBpelLink那行的Associated Port列选择HelloServiceHttpSoap11Endpoint,其他列自动完成
保存.


好了,整个BPEL就部署好了

注意,如果你更改了bpel,wsdl文件,一定要同步更新deploy.xml, 如下:点击右上方链接Associated BPEL ........update!




五.打包并上传

1.进入工程文件夹的 beplContent 下,将5个文件打包成 zip 文件


 

2.进入BPS,进入main/Business Process/Add BPEL,上传文件

注意,如果已经部署过服务名相同的服务,先要进入main/Business Process/Deployed Packages,把以前的服务Undepoly掉.


 

3.好了,我们看到 Web Services/list 列表中多了一个HelloServiceProcess


六.手动wsdl2java


因为BPS里Generate Client报错(不信你随便选一个bepl service试试),所以我们必须手动生成java文件.
需要用到axis-1.6.1包,下载地址 http://axis.apache.org/axis2/java/core/download.cgi
如果你以前用Client的话多半已经下过了.
解压后我们进入到其bin目录下

输入如下命令: 

wsdl2java.bat -uri http://192.168.10.111:9766/services/HelloServiceProcess?wsdl -o ./temp -t

uri是你的BPS的HelloServiceProcess的wsdl1.1的地址. "-o ./temp"表示将生成的代码到temp文件夹下(先建立)
生成成功之后,就可以将两个java文件复制到Client的工程中使用了


 


七.使用Client

假设我们的名字叫 KongBuDeRunFeng, 运行结果是这样的

 


八.源码下载

HelloServiceProcess BPEL工程, 可直接导入到Eclipse中. (需要BPEL插件)

http://115.com/file/e6p3ybm8#HelloServiceProcess_EclipseEE_Project.rar


HelloServiceProcesClient工程,可直接导入到Eclipse中

http://115.com/file/e6p3yo2b#HelloServiceProcessClient_EclipseEE_Project.rar


九.总结

BPS可以用来连接各种服务,并定义流程 ,操作方法大同小异.

需要注意的一点是名空间的引用.还有 用<bpel:invoke>调用其他服务时比较麻烦的一点是要用<bepl:assign>进行类型转换和赋值,这一步最好让程序自动生成








 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值