基于Axis2 Web Service的Eclipse BPEL使用详解.docx
- 文档编号:4959925
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:16
- 大小:892.79KB
基于Axis2 Web Service的Eclipse BPEL使用详解.docx
《基于Axis2 Web Service的Eclipse BPEL使用详解.docx》由会员分享,可在线阅读,更多相关《基于Axis2 Web Service的Eclipse BPEL使用详解.docx(16页珍藏版)》请在冰豆网上搜索。
基于Axis2WebService的EclipseBPEL使用详解
《基于Axis2webservice的EclipseBPEL》作业报告
题目
Assignment4
姓名
学号
日期
2010/11/26
实验环境
EcilpseHeliosTomcat6.0Axis2
硬件环境
实验内容及完成情况
一、环境配置
1.1预置环境
Eclipse3.6Helios
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/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),对该方法进行测试,如下所示:
这里注意要选择Soap11Binding
同样生成SubService.java的WSDL文件。
2.4加减法WebServices的部署
为了能够让其他服务去调用加减法服务,必须先将其部署在服务器上。
首先,右键webServiceProj工程,Export->Web->WARfile,导出War包,将导出的War包放到tomcat的webapps/axis2目录下,即完成部署。
2.5测试服务是否发布成功,在浏览器里输入http:
//localhost:
8080/axis2/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,选择属性打开属性视图,在属性视图中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.6BPEL流程设计
打开控件视图,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语句的设置
在PartnerLink中选择addPL,operation中选择add。
在右侧的quickpick中,双击addPL树下的“add”,系统会自动在变量中创建addReques和addResponse两个接口变量。
注:
不要自建接口变量,自建接口变量在运行时会报调用错误。
Invoke的作用是调用伙伴链接对应接口下的对应操作,还需要指定输入输出变量。
左键选择InvokeAdd(Invoke),在属性视图的Details页面中进行如下配置:
同理,处理InvokeSub(Invoke1):
3.7BPEL流程发布
BPEL流程最终的目的也是发布成一个web-service,只不过这个web服务自己基本上不实现功能,主要是通过调用别人的功能来完成任务。
因此,最后也要把流程对应的WSDL发布出去。
默认生成的WSDL只有类型定义,消息定义,和操作定义,缺少绑定信息和服务定义。
选择File->NewOtherBPEL2.0ApacheODEDeploymentDescriptor,如下所示,直接Finish即会生成一个deploy.xml文件。
打开配置伙伴端口:
3.8修改MyProcess的地址为http:
//localhost:
8080/ode/processes/MyProcess
3.9
3.10
四、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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Axis2 Web Service的Eclipse BPEL使用详解 基于 Axis2 Service Eclipse BPEL 使用 详解