本文接收使用ActiveBpel开发,部署和运行BPEL流程实例。
    本文的例子工程和服务工程请见附件。
1. 安装ActiveBpel5.0.2
    要安装ActiveBpel5.0.2,需要先安装JDK1.5,Tomcat。注意这里是JDK1.5版本的,ActiveBpel5.0.2不支持JDK1.5以上的版本。
    (1) 安装JDK1.5
    安装jdk后设置JAVA_HOME= C:\Program Files\Java\jdk1.6.0_07,这是我的jdk的安装目录。
    (2) 安装Tomcat5.5.27
    具体的安装过程这里就不再叙述,安装完成后,设置环境变量CATALINA_HOME= E:\apache-tomcat-5.5.27,这是我的安装目录。
    (3) 安装ActiveBpel5.0.2
    设置完成CATALINA_HOME环境变量后,就可以安装ActiveBpel5了,解压rar包后安装目录下有install.bat,运行这个文件,即可安装成功。
2. 设计BPEL流程
    设计BPEL流程需要安装BPEL流程设计工具,本文用到的BPEL设计工具是ActiveBpel Designer。
    本文开发一个简单的流程实例,该Bpel流程只调用一个简单的echo服务,该服务输入一个字符串,返回的结果是同样的一个字符串。因此整个Bpel流程的结果也是一个这样的字符串。这个echo服务是mule开发的服务,工程名称echoService,工程见压缩包。
    服务实现代码很简单,如下。

package cn.xidian.repace.zhaolong;
public class EchoImp implements InterfaceEcho{
        public String echo(String str){
                return str;
        }
}

要开发BPEL流程,需要有相关的WSDL文件,该Bpel工程用到两个wsdl文件。一个是Bpel文件本身的wsdl文件BpelEchoTest.wsdl,一个是被调用服务的wsdl文件EchoTest.wsdl。
    Bpel本身的wsdl文件BpelEchoTest.wsdl如下。

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://zhaolong.repace.xidian.cn" xmlns:impl="http://zhaolong.repace.xidian.cn" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:intf="http://zhaolong.repace.xidian.cn" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:message name="bpelResponse">
        <wsdl:part name="bpelReturn" type="xsd:string"/>
    </wsdl:message>
    <wsdl:message name="bpelRequest">
        <wsdl:part name="in0" type="xsd:string"/>
    </wsdl:message>
    <wsdl:portType name="BpelProxy0">
        <wsdl:operation name="bpel" parameterOrder="in0">
            <wsdl:input name="bpelRequest" message="impl:bpelRequest"/>
            <wsdl:output name="bpelResponse" message="impl:bpelResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="bpelTestSoapBinding" type="impl:BpelProxy0">
        <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"/>
        <wsdl:operation name="bpel">
        <wsdlsoap:operation soapAction="" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            <wsdl:input name="bpelRequest">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://zhaolong.repace.xidian.cn" use="encoded" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:input>
            <wsdl:output name="bpelResponse">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://zhaolong.repace.xidian.cn" use="encoded" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="bpelTest">
        <wsdl:port name="bpelTest" binding="impl:bpelTestSoapBinding">
        <wsdlsoap:address location="http://202.117.118.183:33002/services/bpelTest" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"/>
        </wsdl:port>
    </wsdl:service>
<plnk:partnerLinkType name="MyBpelPLT" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
     <plnk:role name="bpel">
            <plnk:portType name="impl:BpelProxy0"/>
     </plnk:role>
</plnk:partnerLinkType>
</wsdl:definitions>

开发好echoService mule服务后,运行该服务,在浏览器输入服务地址,获取wsdl文件,另存为EchoTest.wsdl文件。
    使用ActiveBpel Designer开发流程,工程名是TestBpel,bpel文件名是mybpel.bpel,图形如下所示。

mybpel.bpel代码如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<!--
BPEL Process Definition
Edited using ActiveBPEL(tm) Designer Version 2.1.0 (http://www.active-endpoints.com)
-->
<process xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:ns1="http://zhaolong.repace.xidian.cn" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="mybpel" suppressJoinFailure="yes" targetNamespace="http://mybpel">
     <partnerLinks>
            <partnerLink myRole="bpel" name="MyBpelPLT" partnerLinkType="ns1:MyBpelPLT"/>
            <partnerLink name="MyEchoPLT" partnerLinkType="ns1:MyEchoPLT" partnerRole="echo1"/>
     </partnerLinks>
     <variables>
            <variable messageType="ns1:bpelRequest" name="bpelRequest"/>
            <variable messageType="ns1:bpelResponse" name="bpelResponse"/>
            <variable messageType="ns1:echoRequest" name="echoRequest"/>
            <variable messageType="ns1:echoResponse" name="echoResponse"/>
     </variables>
     <sequence>
            <receive createInstance="yes" operation="bpel" partnerLink="MyBpelPLT" portType="ns1:BpelProxy0" variable="bpelRequest"/>
            <assign>
                 <copy>
                        <from part="in0" variable="bpelRequest"/>
                        <to part="in0" variable="echoRequest"/>
                 </copy>
            </assign>
            <invoke inputVariable="echoRequest" operation="echo" outputVariable="echoResponse" partnerLink="MyEchoPLT" portType="ns1:EchoProxy0"/>
            <assign>
                 <copy>
                        <from part="echoReturn" variable="echoResponse"/>
                        <to part="bpelReturn" variable="bpelResponse"/>
                 </copy>
            </assign>
            <reply operation="bpel" partnerLink="MyBpelPLT" portType="ns1:BpelProxy0" variable="bpelResponse"/>
     </sequence>
</process>

3. 部署流程
    开发完成流程后就可以部署流程了。选择File/New/Deployment Descriptor,新建流程描述符,选择该工程下的mybpel.bpel文件,点击“下一步”。见到下图,进行如下图设置。

    然后将该工程export,生成一个bpr文件,文件名为TestBpel.bpr,将该文件放到Tomcat目录下的bpr文件夹下,这个文件夹是安装activebpel生成的。
在浏览器中输入http://localhost:8080/active-bpel/servlet/AxisServlet 即可查看到该流程服务的项,如下图所示。

4. 运行流程
    部署完成流程后,就可以运行了。运行有两种方式,一种是代码方式,一种是使用soup发送方式,发送soup消息给该流程,返回结果。
    第一种代码方式是普通的方式,使用Axis2的服务调用方式调用bpel流程服务即可,这里就不再详细描述,请见我的另一篇文章:使用Eclipse+Axis2构建Web Service应用(http://panpan.blog.51cto.com/489034/119204)。
    第二种方式是使用soupui软件,安装好soupui软件后,新建工程,输入名称和刚才的bpel流程地址:http://localhost:8080/active-bpel/services/MyBpelPLTService?wsdl,输入数据。把<in0 xsi:type="xsd:string">?</in0>处的?换为任意一个字符串,右方就会输出这个字符串。 运行成功。

转载于:https://blog.51cto.com/panpan/185562

ActiveBpel部署运行BPEL流程实例相关推荐

  1. Flowable 6.6.0 BPMN用户指南 -10 流程实例迁移 - 10.1 简单示例

    Flowable 6.6.0 用户指南相关文档下载 BPMN用户指南 第一部分 - 中文PDF精编版 BPMN用户指南 第二部分 - 中文PDF精编版 BPMN用户指南 第三部分 - 中文PDF精编版 ...

  2. JAVAWEB开发之工作流详解(二)——Activiti核心API的使用(流程定义和流程实例的管理、流程变量、监听器...)以及与Spring的集成

    管理流程定义 设计流程定义文档 bpmn文件 设置方式可以直接使用插件图形化界面进行设置 为某任务节点指定任务执行者 保存后的BPMN文件可以使用XML编辑器打开 BPMN 2.0根节点是defini ...

  3. (经验总结)flowable工作流_01_流程实例管理

    文章目录 一.流程定义管理功能有哪些? 二.删除流程实例会删除哪些表中的数据? 三.流程实例做什么用? 四.流程定义涉及的表 一.流程定义管理功能有哪些? 类名:ApiFlowableProcessI ...

  4. 工作流实战_12_flowable 流程实例 终止流程

    项目地址 https://gitee.com/lwj/flowable.git 代码分支 flowable-base 视频讲解地址 https://space.bilibili.com/4855245 ...

  5. 工作流实战_11_flowable 流程实例 跟踪流程

    项目地址 https://gitee.com/lwj/flowable.git 代码分支 flowable-base 视频讲解地址 https://space.bilibili.com/4855245 ...

  6. 12.flowable 流程实例 终止流程

    项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base 视频讲解地址 https://space.bilibili.com/485524575/ ...

  7. Activiti基础教程--07流程执行历史记录(历史任务、历史流程实例、历史活动)

    相关代码参考gihub:https://github.com/changwensir/Activiti/tree/master/ActivitiDemo1 一.Activiti 历史任务查询 实际工作 ...

  8. camunda工作流引擎流程定义部署 流程定义查询 激活流程实例

    camunda工作流引擎流程定义部署 流程定义查询 激活流程实例 1.通过xml字符串部署流程定义 /*** 通过xml字符串部署流程定义* @param processModelVo* @retur ...

  9. Activiti第二篇【管理流程定义、执行任务和流程实例、流程变量】

    tags: Activiti 上篇Activiti只是一个快速入门案例,这篇就讲定义.部署.查看任务等等的一些细节[涉及到的数据库表.对象等等]... 管理流程定义 管理流程定义主要涉及到以下的4张表 ...

最新文章

  1. R语言tidyr包gather()函数实战详解:数据收缩、从宽表到窄表
  2. python3.8.1安装教程-Linux安装Python3.8.1的教程详解
  3. 把报表的数据导出Excel
  4. JavaScript中属性name与方法名不能相同
  5. SpringBoot简介、SpringBoot 入门程序搭建、与JDBC、Druid、Mybatis和SpringData JPA的整合
  6. TP的依赖注入:将类类型的对象作为参数注入到当前类中
  7. rhel6.2安装oracle11g,RHEL 6.2 x86_64 下安装Oracle 11g步骤
  8. android byte转string_Dig101 - Go之string那些事
  9. pythoncsv格式清洗与转换_数据预处理-清洗转换
  10. Music Game
  11. 介绍下BFC,IFC,GFC和FFC
  12. MyBatis通过反射建立一个对象的过程。
  13. 宋宝华:关于Ftrace的一个完整案例
  14. 印象笔记html预览,超级笔记使用指南 | 印象笔记
  15. vb.net 教程 3-10 窗体编程 datagridview控件 7 修改单元格
  16. Flutter 模拟神舟十三号火箭发射动画
  17. Hadoop之日志分析
  18. 教你如何免费下载浏览器上收费的音乐和视频
  19. 物联网的概念、分层及关键技术
  20. EOS系列 - 账户名规则

热门文章

  1. react-native 显示html,react-native-webview加载本地H5
  2. java mqtt客户端_java 实现mqtt发送和接收消息客户端具体用法及测试代码
  3. linux syslog 删除文件_Linux没有当心删除日记文件syslog怎样办
  4. 客制化键盘编程_客制化键盘如何入坑?
  5. linux中tags文件能删除吗,Git 详细介绍查看、删除、重命名远程分支和tag
  6. oracle java存储过程返回值_java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)...
  7. nodejs mysql access denied_Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’...
  8. jq ajax traditional,jQuery ajax - param() 方法
  9. jwt java 项目实例_JWT(JsonWebToken)+SpringMVC项目demo
  10. 目标检测第4步:显卡、GPU、CUDA、cuDNN的介绍及如何在Windows 10下安装cuDNN?