正 文

实现动态 BPEL 流程


www.7dspace.com  更新日期:2006-1-15 2:12:46  七度空间


      DynamicPartnerLink 流程基本上由一个切换组成。它检查调用方传入的“provider”字符串。然后,它将 EndpointReference xml 数据结构指定给 partnerReference 变量,该变量包含与您请求的服务相关的信息。切换后,将 partnerReference 变量指定给 LoanService 合作伙伴链接,随后将调用该合作伙伴链接。

下面是在输入字符串(服务提供商)为“united”时如何完成该任务:

<assign>
<copy>
<from>
<EndpointReference xmlns="http://schemas.xmlsoap.org/ws/2003/03/addressing">
<Address>http://localhost:9700/orabpel/default/UnitedLoan</Address>
<ServiceName
xmlns:ns1="http://services.otn.com">ns1:UnitedLoan</ServiceName>
</EndpointReference>
</from>
<to variable="partnerReference"/>
</copy>
</assign>

      <from> 与 </from> 标记之间的所有内容均为指定给 partnerReference 变量的文字 XML。将 partnerReference 变量指定给 LoanService 合作伙伴链接时,该数据将覆盖此合作伙伴链接中指定的地址和服务。

      您已经了解了如何使用 LoanService 合作伙伴链接和和 LoanService.wsdl 调用在运行时选择的服务,下面就可以开始构建一个动态流程了。

      创建一个动态 BPEL 流程

      现在,我们从头创建一个动态 BPEL 流程。

     1. 创建一个新的 BPEL 项目。

      在 JDeveloper 中创建一个新的异步 BPEL 流程项目,并将它命名为“MyDL”。

      2. 从 DynamicPartnerLink 示例中导入 LoanService.wsdl 文件。

      将 LoanService.wsdl 文件从 DynamicPartnerLink 示例复制到 MyDL 项目的工作目录中(默认情况下为 [BPEL_HOME]\integration\jdev\jdev\mywork\Workspace1\MyDL)。(该方法不但可以节省您的时间,而且还免去了您创建自己的动态 WSDL 和子流程服务的麻烦。)然后,在 Applications Navigator 中右键单击 MyDL 项目,选择 Add to Project...。从该目录中选择 LoanService.wsdl 文件,然后单击 OK。

尚未将 LoanService.wsdl 文件添加到 bpel.xml 文件中。您将在该流程的后面部分中(即实现 EndpointReference 变量时)执行该操作。

  3. 创建贷款服务合作伙伴链接模板。

  右键单击某个泳道,选择 Create Partner Link...。按图 2 所示填写该对话框。要填写 WSDL File 位置,您将使用 Browse WSDL Files from Local File System 按钮(位于手电筒图标的左侧)从 MyDL 项目目录中选择 LoanService.wsdl 文件。单击 OK 创建合作伙伴链接。

  图 2“Create Partner Link”对话框

  4. 创建调用和接收动作来外调 DynamicLoanService 合作伙伴链接。

  将 invoke 和 receive 动作分别从组件模板拖到流程(位于 receiveInput 和 callbackClient 动作之间)中。将一个箭头从 invoke 拖到 DynamicLoanService 合作伙伴链接并创建输入变量。对 receive 执行相同的操作。这些变量应分别命名为 loanInput 和 loanOutput。

7页,页码:[1] [2] [3] [4] [5] [6] [7] 

上一篇:SOA 重用工程
下一篇:ADO.NET连接池超时
标题:实现动态 BPEL 流程 作者: 来源:Oracle
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐