当前位置:文档之家› Oracle SOA Suite 11g入门实例(三)

Oracle SOA Suite 11g入门实例(三)

Oracle SOA Suite 11g 入门实例(三)创建SOA应用

Author: Maolin.Chen

Creation Date: July 30, 2010

Last Updated: September 17, 2010

Document Ref:

Version: 1.0

文档控制更改记录

内容目录

文档控制 ............................................................................................................................. i i 1.前言 .. (2)

1.1.关于PartnerSupplierComposite组合应用 (2)

2.创建WFOD应用和PartnerSupplierComposite组合 (3)

2.1.创建WFOD应用和PartnerSupplierComposite组合 (3)

2.2.创建Warehouse.xsd (4)

2.3.创建ExternalPartnerSupplier BPEL 流程 (8)

2.4.修改ExternalPartnerSupplier BPEL 流程 (10)

2.5.部署PartnerSupplierComposite组合 (15)

2.6.测试PartnerSupplierComposite组合 (15)

3.未结与已结问题 (19)

未结问题 (19)

已结问题 (19)

1.前言

从本章开始,我们将手把手教大家开发WFOD应用,本章主要介绍如何使用

JDEVELOPER创建SOA应用以及如何创建PartnerSupplierComposite组合应用。

1.1.关于PartnerSupplierComposite组合应用

PartnerSupplierComposite组合包含了一个BPEL流程:ExternalPartnerSupplier。

OrderBookingComposite组合的OrderProcessor BPEL流程会在Scope_RetrieveQuotes

处使用ExternalPartnerSupplier来获取外部供应商的报价信息,我们会在后面创建

Scope_RetrieveQuotes和ExternalPartnerSupplier Web service的章节引用到这个流

程。

2.创建WFOD应用和PartnerSupplierComposite组合

2.1.创建WFOD应用和PartnerSupplierComposite组合

1.运行Jdeveloper 11g,点击File > New。

2.选择Current Project Technologies标签页,依次选择General > Application,SOA

Application,点击OK。

3.在Name your application页,输入如下值:

属性值

Application Name WebLogicFusionOrderDemo

Directory 指定一个目录,作为我们所有工程的根目录,本目录后文

用MY_FOD_HOME指代。

Application Package

留空。

Prefix

4.点击NEXT。

5.在Name your Project页,输入如下值:

属性值

Project Name PartnerSupplierComposite

Directory 保持默认。

Project Technologies SOA

6.NEXT。

7.在Configure SOA Settings页中的Composite Template下选择Composite With

BPEL,点击完成。弹出Create BPEL Process对话框。

2.2.创建Warehouse.xsd

我们需要创建我们BPEL流程进行数据交换的数据格式文件,也就是XSD文件:

1.右键PartnerSupplierComposite工程下的xsd目录,选择New,弹出New Gallery

对话框。

2.选择All Technologies选项卡,依次选择General>XML,在Items中选择XML

Schema。

3.在弹出的Create XML Schema对话框中输入:

属性值

File Name Warehouse.xsd

Directory 保持默认

4.点击OK。

5.在打开的Warehouse.xsd标签页中,点击击targetNamespace后面的值,将

https://www.doczj.com/doc/842801570.html,修改为

https://www.doczj.com/doc/842801570.html,/ns/warehouse

6.创建WarehouseProcessResponse元素:

a)点击exampleElement节点,重命名为WarehouseProcessResponse

b)右键WarehouseProcessResponse节点,选择Insert inside

element-WarehouseProcessResponse> sequence。

c)右键新产生的sequence节点,选择Insert inside element-sequence>

element。

d)点击新产生的element1节点,重命名为orderTotal

e)右键orderTotal节点,选择Set Type,在列表中选择xsd:double

f)重复步骤c, 右键新产生的sequence节点,选择Insert inside

element-sequence> element。

g)点击新产生的element1节点,重命名为deliveryDate

h)右键deliveryDate节点,选择Set Type,在列表中选择xsd:date

7.创建orderItem类型:

a)右键根节点,选择Insert inside schema > complexType。

b)点击新产生的complexType1节点,重命名为orderItem

c)右键orderItem节点,选择Insert inside element-orderItem> sequence。

d)右键新产生的sequence节点,选择Insert inside element-sequence>

element。

e)点击新产生的element1节点,重命名为price

f)右键price节点,选择Set Type,在列表中选择xsd:double

g)重复步骤d, 右键新产生的sequence节点,选择Insert inside

element-sequence> element。

h)点击新产生的element1节点,重命名为quantity

i)右键quantity节点,选择Set Type,在列表中选择xsd: integer

j)重复步骤d, 右键新产生的sequence节点,选择Insert inside element-sequence> element。

k)点击新产生的element1节点,重命名为productId

l)右键productId节点,选择Set Type,在列表中选择xsd: string

8.创建WarehouseProcessRequest元素:

a)右键根节点,选择Insert inside schema > element。

b)点击新产生的element1节点,重命名为WarehouseProcessRequest

c)右键WarehouseProcessRequest节点,选择Insert inside

element-WarehouseProcessRequest> sequence。

d)右键新产生的sequence节点,选择Insert inside element-sequence>

element。

e)点击新产生的element1节点,重命名为orderTotal

f)右键orderTotal节点,选择Set Type,在列表中选择xsd:double

g)重复步骤d, 右键新产生的sequence节点,选择Insert inside

element-sequence> element。

h)点击新产生的element1节点,重命名为orderItems

i)右键orderItems节点,选择Set Type,在列表中选择orderItem

j)在右下角element-Property Inspector面板中输入:

属性值

MaxOccurs unbounded

minOccurs 0

9.点击File > Save All.

2.3.创建ExternalPartnerSupplier BPEL 流程

1.在Create BPEL Process对话框,输入如下值:

属性值

Name ExternalPartnerSupplier

Namespace https://www.doczj.com/doc/842801570.html,/ns/warehouse

Template Asynchronous BPEL Process

Expose as a SOAP service 勾选此项,将BPEL流程暴露为SOAP 服务,即其他外部程序可以调用此流程。

2.在Input域里:

a)在Input域,单击Browse Input Elements按钮。弹出Type Choose 对话框。

b)展开Project Schema Files > Warehouse.xsd 选择

WarehouseProcessRequest,单击OK。

3.在Create BPEL Process对话框,从Warehouse.xsd导入数据类型作为流程的输出类

型:

a)在Output域,点击Browse Output Elements按钮。弹出类型选择框

b)展开Project Schema Files > Warehouse.xsd选择

WarehouseProcessResponse,单击OK.

4.在Create BPEL Process对话框,单击OK。

5.点击File > Save All.

2.4.修改ExternalPartnerSupplier BPEL 流程

前面我们讲过,ExternalPartnerSupplier流程的作用是根据Order Processor流程提

供的商品列表和商品总额提供一个报价信息和出货日期,为了简便起见,我们直接

将Order Processor流程提供的商品总额作为我们的报价信息返回给流程调用者,把

当前日期作为出货日期返回给调用者(当然,有的同学会问,既然是向供应商询价,

为什么要提供自己的商品总额呢,在真正的商业环境里,这是不可能的!的确如此,

我们这里仅仅是为了方便程序设计,而直接根据提供的总额返回报价信息)。下面,

我们将创建一个分配活动(assign activity),让它将采购总金额和当前日期传递给

输出变量。assign activity的作用就是在变量、表达式、还有其他元素之间传递数据。

1.单击ExternalPartnerSupplier TAB页。

2.创建assign activity:

a)从右边的Component Palette 面板中,拖动一个Assign活动到

receiveInput接收活动下方。

b)双击该Assign活动图标下方的活动名字以重命名该活动,注意不要双击图

标本身。

c)更改名称为AssignResponse.

d)双击assign活动图标本身。弹出Assign对话框。

3.传递(复制)采购总金额(OrderTotal变量)到输出变量。

a)从下拉菜单中选择Copy Operation,弹出Create Copy Operation对话框。

b)在左边的From框中,保持Type的值为Variable并且展开Variables >

inputVariable > payload > client: WarehouseProcessRequest并且选择

client:orderTotal。

c)在右边的To框中,保持Type的值为Variable并且展开Variables >

outputVariable > payload > client: WarehouseProcessResponse并且选

择client:orderTotal。

d)点击OK关闭当前窗口,回到Assign对话框。

4.分配当前日期到输出变量deliveryDate:

a)从下拉菜单中选择Copy Operation,弹出Create Copy Operation对话框。

b)在左边的From框中,在TYPE下拉菜单中选择Expression。

c)点击XPath Expression Builder按钮。

弹出Expression Builder对话框。

d)在右下方的Functions区域,在下拉菜单中选择Date Functions,然后在下

方列表中选择current-date。可在下方查看到该函数的说明。

e)单击Insert Into Expression,然后点击OK。

f)在右边的To区域,保持Type的值为Variable并且展开Variables >

outputVariable > payload > client: WarehouseProcessResponse并且选择client:deliveryDate。

g)点击OK返回到Assign对话框。

5.在,Assign对话框点击OK。

6.点击Save All.

7.关闭ExternalPartnerSupplier.bpel标签页。

8.关闭composite.xml标签页。

至此,我们的PartnerSupplierComposite组合和ExternalPartnerSupplier

BPEL流程就设计完成了。

2.5.部署PartnerSupplierComposite组合

1.在Application Navigator里右键PartnerSupplierComposite并且选择

Deploy > PartnerSupplierComposite > to sp-eump-cms. 弹出SOA Deployment

Configuration对话框。

2.保持默认设置,点击OK。

3.当弹出Authorization Request对话,输入WEBLOGIC用户名密码,点击OK。

在SOA – Log面板,出现一些提示信息,最后一段应该是:

2.6.测试PartnerSupplierComposite组合

1.启动企业管理器(即融合中间件控制台,Fusion Middleware Control), 参考Oracle

SOA Suite 11g入门实例(二)第2.4节。

2.选择SOA基础结构>SOA管理>公共属性。

3.在审计级别里选择开发,勾选捕获组合实例状态。

4.点击应用。

5.在左边的树形菜单中选择SOA>soa-infra> PartnerSupplierComposite,点击右边

页面顶端的测试。

小提示:在新打开的测试页中,你不止可以测试自己场中的WEB服务,还可以测试任何网络中的WEB服务,只需输入其WSDL地址,点击对WSDL进行语法分析即可。

6.在输入参数区域,输入WEB服务的输入参数:

a)在orderItem Array Size域里输入1,点击其右边的Array Size图标。

b)展开orderItems > orderItems,输入以下值:

- OrderTotal : 500

- quantity : 5

- productId : xaca

- price : 100

7.点击测试服务。

测试结果显示在响应标签页中。

8.点击启动消息流跟踪查看流程实例。

9.在流跟踪窗口,点击ExternalPartnerSupplier实例。

10.点击流标签页。

11.点击AssignResponse活动可以看到我们输入的OrderTotal被复制到了输出变量

outputVariable。

12.关闭当前窗口。

至此,本章内容介绍完毕。有任何意见或建议请致信:chenmaolin88@https://www.doczj.com/doc/842801570.html,

相关主题
文本预览
相关文档 最新文档