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)右键
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)右键
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,