oracle的BPEL designer使用,部署web服务测试环境

BPEL designer是bpel设计工具,内置在eclipse中。

bpel process manager是bpel测试工具,这里不使用。

1)安装bpel designer:

eclipse中Help  -->  Install New Software 

然后安装即可。

         2)下载安装apache ODE(BPEL解析器):

         下载ODE(如apache-ode-war-1.3.5.zip),解压,将ode.war拷贝到tomcat的webapps目录下。然后启动tomcat(双击\bin\startup),在浏览器中输入地址localhost:8080/ode出现如下界面说明ODE安装成功:

同时需要在eclipse中配置ODE,同样在eclipse中HelpàInstall New Software,搜索ODE,安装,如下

(其实在之前安装bpel插件时可以一并把ODE安装了)

3)环境安装成功后,接下来需要首先部署个web服务:

启动eclipse,选择File  à New à OtheràWeb àDynamic Web Project,新建一个web工程。

问题1:找不到Dynamic Web Project选项,只有Static Web Project

如果你想建立的工程里不包括动态内容如(servlets,JSP files,filters和associated metadata)的话,建立static web project,否则建立dynamic web project。

解决方法:

下载eclipse Jave EE for developers版本(eclipse-jee-juno-SR2-win32-x86_64)

(1)       打开eclipse,选择File  --> New --> OtheràWeb --> Dynamic Web Project,新建一个web工程。命名为FirstWebService

(2)       在firstWebService工程中Java Resources的src文件夹中新建两个包和两个java文件目录(eclipse中一定要注意文件目录)如下

在AddService.java输入如下内容:

在SubService.java输入如下内容:

(3)       接下来生成web服务的wsdl文件。

右键AddService.java,选择Web ServicesàCreate Web Service。如下

弹出如下界面,输入

点击finish后,经过一会就会生成对应的wsdl文件和配置文件,并发布到tomcat中,同时会生成调用服务的客户端,弹出如下测试界面:

选择add方法,输入a和b,便能得到结果:

同样的对SubService.java生成相应的web服务wsdl和配置文件,并测试。

(4)       接下来便是web服务的部署

为了让其他服务区调用该服务,必须先部署到服务器上。

右键工程名(FirstWebService),选择export—>WAR file,弹出下面界面,选择war包存放位置(tomcat文件夹下webapps下),完成部署。

(5)       测试是否部署成功。

启动tomcat,在浏览器中输入

http://localhost:8080/FirstWebService/services/AddService?wsdl,打开即部署成功。

注:在折腾好久的下面的BPEL后,突然发现这两个web服务也无法访问了,点击上面的浏览器链接,显示404 error。

解决方法:

在tomcat中删掉FirstWebService文件夹,重新部署即可

4)  web服务流程BPEL实例开发,部署

(1)启动eclipse,点击File  -> New  --> BPEL 2.0  -->  BPEL Project,输入名字(secondBPEL)后点Finish。

(2)右键BPEL工程下文件夹bpelContent(一定要把所有文件放在bpelContent中,不然在后来的deploy.xml时导入不了端口信息,始终为none),点击New --> Other,选择BPEL 2.0àNew BPEL Process File,输入process名和namespace,点击next

在接下来的选择synchronous的,然后next或finish

(3)导入刚刚创建的Add和Sub服务的wsdl文件

在FirstWebService工程(Add和Sub服务的工程)找到Add和Sub的wsdl文件,然后复制到FirstBPEL工程目录下,如下图

(4)设置伙伴连接

在右上角的Partner Links中添加两个链接,如下图

然后右键AddPLàShow in PropertiesàDetails,选择Browse

在弹出来的按如下点击Add WSDL后,弹出以下窗口

两次OK后,弹出以下窗口,随便命名Partner Link type name

然后点击next后,输入如下

点击Finish,最后将partner role选为AddProvider。

addPL便添加了一个web服务的描述文件wsdl。

同样添加SubService。

(6)       修改MyProcessArtifa secondProcessArtifacts.wsdl

右键secondProcessArtifacts.wsdlàOpenàOpen with WSDL Editor,如下

弹出如下窗口,单击标记的箭头

然后在新弹出的窗口修改process request,添加了a和b两个输入变量,修改后如下

保存。接着同样修改Output的类型,如下

(7)       接下了进行BPEL的流程设计

双击secondProcess.bpel进入bpel界面,在eclipse中依次WindowàShow ViewàPalette,打开控件视图,修改BPEL流程。未修改如下

首先点击选中删除FIX_ME-Add_Business_Logic_Here,然后选择IF控件,插入到receiveInput后面,效果如下

然后选中新添加的IF控件,右键Add Elself,然后便依次拖入invoke,assign控件,最终效果如下

(8)       接下来依次修改上述控件的属性

选中第二个IF,在Details中输入条件语句:$input.payload/tns:type='add'

同理在Else if控件的Details中输入语句:$input.payload/tns:type='sub'

修改左边的invoke控件:

同样修改右边的Invoke控件。

修改第一个Assign控件:

Assign控件作用是把输入变量input中的前两个参数传给addRequest变量,需要注意的是,BPEL中的变量赋值只能是一个一个的,不能直接把input赋给addRequest。

选择左边上面一个Assign控件,在Details属性先点击New(下拉便会看见),然后按如下操作

在这个Assign中再次New,把变量b也添加了(有几组变量就需要添加几组variable to variable,不然最后的测试结果不正确,未添加的默认就为0)

修改左边的下方的Assign控件使其输出result(只需一组流的转换),如下

同样对右边的两个Assign做类似的修改,同样需要两组。

全部修改后,应如下

(9)       重新右键以xml方式打开secondProcessArtifacts.wsdl文件,下拉到文件的最后修改如下

(10)       最后BPEL发布

右键bpelContent,依次NewàOtheràBPEL 2.0àBPEL Deployment Descriptor,弹出如下窗口,选择需要发布的BPEL工程

点击finish后,弹出如下,修改其中的inbound和outbound属性

这里如果文件夹目录不对,则Associated Port会是none,从而无法绑定端口

(11)      tomcat中文件夹下配置ode

把整个secondBPEL文件夹copy到tomcat文件夹下

然后进入processes下的secondBPEL文件夹,进入bpelContent,把里面的文件全部copy(不要剪切)到secondBPEL文件夹下

接下来修改此文件夹下的secondProcessArtifaces.xml(以记事本打开),如果不修改直接启动tomcat的话会是如下报错,下面的报错显示tomcat启动成功后,接着加载secondBPEL结果报错

如果启动tomcat只有server startup  in *** ms,没有后面的加载bpel工程的话,这是因为processes文件夹下已有secondBPEL.deployed这个文件,删除这个文件即可,tomcat便会尝试重新加载secondBPEL工程了。

回到正题,打开secondProcessArtifacts.wsdl文件,在文件的最后soap:address字段修改如下

         启动tomcat,进入(13)的测试。

(12)       BPEL运行于测试

右键MyProcessArtifacts.wsdl,选择Web Services,test with web services explorer

在弹出的窗口中如下操作

问题1:在不开启tomcat的情况下,输入a和b,测试很正常(因为要调用addservice和subservice,所以需要启动这两个服务)

问题2:如果不修改刚刚的processes文件夹下secondProcessArtifacts.wsdl,则在开启tomcat的情况下报错IWAB0135E An unexpected error has occurred. 404 Not Found(在这个问题上折腾了很久)

         

测试add方法,结果正确

 

测试sub,结果

浏览器访问如下

posted @ 2013-11-20 17:13  IT_cnblogs  阅读(1230)  评论(0编辑  收藏  举报