BPEL异步设计实例

使用JDeveloper设计BPEL异步实例

首先讲一下JDeveloper编排异步流程的格式:

   1.对于一个服务来讲,其内容可以是同步的,本例中服务为双向操作(请求/应答)

   2.在调用服务前,需要把服务包装为方便主流程调用的异步服务,即包含callback的bpel流程(须知道bpel本身也是一个服务,它也有自己的wsdl)

   3.在主流程中使用invoke调用第二步中编排好的服务,通过receive回调

   4.webservice服务可以是同步的,BPEL可以把同步服务编排为异步服务

我的这个例子是:

    java代码编写审批服务,通过CXF发布webservice服务,产生wsdl文件,用JDeveloper编排

   请假实例:

      1.输入名字和请假原因 2.由主管审批是否允许 3.返回结果

在oracle的服务控制台可以动态的查看服务流程执行的过程。

1.流程审批的java代码:

   
BPEL异步设计实例
 2.使用JDeveloper把该服务编排为异步的,新建一个异步的BPEL


BPEL异步设计实例
 3.JDeveloper新建一个主要的BPEL服务流程:右边的流程是调用第二步的服务,左边的流程只是一个写请假书的流程(简单的调用服务,不再详细介绍)


BPEL异步设计实例
 

4.服务编排好之后,进行测试:


BPEL异步设计实例
 5.查看服务流程进度:


BPEL异步设计实例
 6.与此同时,查看eclipse控制台,输入Y进行回应:


BPEL异步设计实例
 7.运行结束,查看最后结果的流程:


BPEL异步设计实例