EclipseBPEL使用详解.docx
- 文档编号:30521077
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:18
- 大小:968.03KB
EclipseBPEL使用详解.docx
《EclipseBPEL使用详解.docx》由会员分享,可在线阅读,更多相关《EclipseBPEL使用详解.docx(18页珍藏版)》请在冰豆网上搜索。
EclipseBPEL使用详解
一、环境配置
1.1预置环境
EclipseIDEforSOADevelopers
Version:
HeliosServiceRelease2
Buildid:
20110218-0911
(c)CopyrightEclipsecontributorsandothers2000,2011.Allrightsreserved.
Visithttp:
//eclipse.org/
Thisproductincludessoftwaredevelopedbythe
ApacheSoftwareFoundationhttp:
//apache.org/
1.2配置ApacheODE(BPEL解析器)
1)下载地址:
http:
/ode.apache.org/gettingode.html,选择1.3.4release版本
2)解压文件,将ode.war拷贝到tomcat的webapps目录下
3)启动tomcat,输入http:
//localhost:
8080/ode可以看到ODE的启动界面,如下所示
至此,ODE安装成功。
1.3安装BPELDesigner插件
1)启动Eclipse,选择Help->InstallNewSoftware,进入Installwizard,如下所示
2)选择Add按钮,并输入如下地址:
http:
//download.eclipse.org/technology/bpel/update-site/,点击OK
3)根据下图所示,安装BPELVisualDesigner
4)安装成功后,在Eclipse中选择File->New->Other,可以查看到BPEL选项,如下图所示:
至此,BPEL开发环境配置完成。
二、加减法WebServices的开发部署。
2.1新建Web工程
启动Eclipse,选择File->New->Other->Web->DynamicWebProject,新建一个web工程。
命名为webServiceProj,如下图所示:
2.2新建加减法AddService以及SubService。
建立AddService以及SubService两个class,分别是加减法的实现流程,如下图所示:
关键代码:
publicclassAddService{
publicdoubleadd(doublea,doubleb){
System.out.println(a+"+"+b+"="+(a+b));
returna+b;
}
}
publicclassSubService{
publicdoublesub(doublea,doubleb){
System.out.println(a+"-"+b+"="+(a-b));
returna-b;
}
}
2.3生成加减法的WebServiceWSDL
1)生成加减法的WebServiceWSDL描述文件,右键选择AddService.java,选择WebServices->CreateWebService,按照如下界面选择功能点:
2)点击Finish就会生成java类对应的wsdl文件和配置文件,并发布到tomcat中,同时会生成调用服务的客户端,选择add(double,double),对该方法进行测试,如下所示:
同样生成SubService.java的WSDL文件。
2.4加减法WebServices的部署
为了能够让其他服务去调用加减法服务,必须先将其部署在服务器上。
首先,右键webServiceProj工程,Export->Web->WARfile,导出War包,将导出的War包放到tomcat的webapps目录下,即完成部署。
2.5测试服务是否发布成功,在浏览器里输入http:
//localhost:
8080/webServiceProj/services/AddService?
wsdl,若能打开加法服务对应的wsdl就意味着服务发布成功。
三、BPEL实例开发、部署
3.1创建BPEL工程。
启动Eclipse,点击File->New->Other,然后选择BPEL2.0->BEPLProject,在弹出的对话框中输入项目名MyBPEL。
3.2创建BPEL流程,
右键MyBPEL,点击New->Other,选择BPEL2.0->NewBPELProcessFile,出现NewBPELProcess对话框,输入流程名MyProcess,名字空间设为:
,选择同步流程。
点击Finish完成。
如下图所示:
3.3导入加法服务和减法服务的wsdl文件
将AddService.wsdl和SubService.wsdl复制到工程目录里。
3.4设置伙伴链接
Bpel把涉及其中的所有服务都称之为伙伴链接。
Bpel对应的wsdl(MyProcess.bpel)本身也是一个伙伴链接。
系统已经自动生成了。
对于流程中要用到的加法服务,减法服务,应该生成对应的伙伴链接。
a)在右上角的PartnerLinks中,增加两个链接,分别是addPL,subPL。
如下图所示:
b)设置伙伴链接,右击addPL,选择属性打开属性视图(showinproperties),在属性视图中Details页面中点Browser,
打开对话框。
点AddWSDL把用到的两个WSDL即AddService.wsdl和SubService加进来
选上AddService接口,点Ok,弹出伙伴链接类型定义,把名字取为addPLT,点Next。
要求输入RoleName,这里输入“addProvider”,点Finish完成。
同时在属性视图中把ParterRole选为addProvider。
如下图所示:
以同样。
建立subPL设置
3.5修改MyProcessArtifacts.wsdl中的输入输出
因为其默认的输入输出不符合我们项目的要求,右键MyProcessArtifacts.wsdl文件,用openwithWSDLEditor打开该文件,转到设计视图里。
如下图所示:
单击input后边对应的箭头,打开一个新的Editor对输入消息进行配置。
进去后选中类型,右键,就可以增加元素,并设置元素的类型,结果如下,其中a,b分别表示需要加减的2个值,type用来区别加减法,当type=’add’,时,调用加法服务,当type=’sub’时调用减法服务。
同理,单击output后边对应的箭头,修改类型,结果如下:
3.6创建调用服务时需要的变量
每次invoke一个服务时都要有对应的变量,同时要进行赋值。
我们这里要调用加法服务和减法服务。
因此需要额外加入addRequest,addResponse,subRequest,subResponse加完后的效果如下:
3.7配置变量
点上addRequest变量,属性视图中切换到Details页,点右上角的Browse..按钮,打开类型选择对话框。
addRequest是加法服务的输入,因此把它的类型设为加法服务里的输入定义就可以了。
一个变量的类型可以是简单类型,也可以是复杂类型,还可以是wsdl中的Message定义。
简单起见,我们这里就把addRequest的类型设为AddService服务中的addRequestMessage。
同理,其他3个变量也做相应的处理。
3.8BPEL流程设计
打开控件视图,Window->ShowView->Palette,将IF控件,拖到receiveInput后面,选中刚建好的if模块,点右键,依次点AddElseIf。
基本结构如下:
同理,拖入其他控件,最终效果如下图哦所示:
a)If语句的配置
选择If,在属性视图中点开Details页,在Expressionlanguage选择SameasProcess做如下配置:
输入条件语句:
$input.payload/tns:
type='add',
如下图所示:
同样,选择ElseIf
b)Assign语句的设置
第一个Assign的作用是把输入变量input中的前两个参数传给addRequest变量。
需要注意的是,BEPL中的变量赋值只能是一个一个的赋,不能直接把input赋给addRequest(当然这里也不匹配,即使匹配也不行),而只能把input下的参数挨个赋给addRequest。
如下图所示,将input的值a赋给addRequest的值a,此时会弹出一个对话框,询问是否要初始化addRequest,选择Yes。
同理,将input的值b赋给addRequest的值b。
同理,处理其他3个Assign。
c)Invoke语句的设置
Invoke的作用是调用伙伴链接对应接口下的对应操作,还需要指定输入输出变量。
左键选择InvokeAdd(Invoke),在属性视图的Details页面中进行如下配置:
同理,处理InvokeSub(Invoke1):
3.9BPEL流程发布
BPEL流程最终的目的也是发布成一个web-service,只不过这个web服务自己基本上不实现功能,主要是通过调用别人的功能来完成任务。
因此,最后也要把流程对应的WSDL发布出去。
默认生成的WSDL只有类型定义,消息定义,和操作定义,缺少绑定信息和服务定义。
选择File->NewOtherBPEL2.0ApacheODEDeploymentDescriptor,如下所示,直接Finish即会生成一个deploy.xml文件。
打开配置伙伴端口:
四、BPEL运行与测试
4.1创建ODE服务器
在Eclipse中选择File->New->Other选项,选择Server,再选择Apache,出现如下视图:
选择Odev1.xServer,点击OK,ODEServer建立完毕。
4.2启动ODE服务器
打开servers选项卡,右键Odev1.xServer,将上述BPEL工程部署到Ode服务器上,如下图所示,启动Ode服务器。
4.3测试AddService.wsdl以及SubService.wsdl
右键AddService.wsdl,选择WebServices->Testwithwebserviceexplorer,在弹出的页面中,选择AddServiceSoapBinding中的add方法,进行测试,若成功,测试结果如下所示:
同理,测试SubService,结果如下所示:
4.4测试BPEL
测试步骤与步骤2相同,测试结果如下所示:
本示例主要使用Eclipse开发环境,结合ODE解析器,解析BPEL调用WebService的项目流程,并最终发布测试通过。
1.ODE服务器无法创建
重启Tomcat服务器及Eclipse。
2.Eclipse项目异常
在进行BPEL流程设计时候,有时候Problems选项中的会错误提示,如下所示
重启Eclipse。
3.自动生成的文件错误
MyBPEL对应的MyBPELArtifacts.wsdl文件的Server的soap:
address需要手动修改,默认生成的地址是:
addresslocation="http: //localhost: 8080/MyBPEL"/> 需要修改成: addresslocation="http: //localhost: 8080/ode/processes/MyBPEL/MyBPEL"/>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EclipseBPEL 使用 详解