JBPM4.0开发步骤

jBPM4开发入门指南

------------------------------------------------------------------------------------------
1.1、安装JDK
------------------------------------------------------------------------------------------
1.2、安装Ant
Ant 是使用 jBPM 必须的一个工具。 jBPM 中的很多操作都要用到 Ant 。

安装方法:

( 1 )先下载: 为了执行ant脚本,你需要1.7.0或更高版本的apache ant:

http://ant.apache.org/bindownload.cgi

( 2 )解压到 D:/ant (当然其他目录也可以)。

( 3 )设置如下系统变量: ANT_HOME=d:/ant 。

( 4 )把 %ANT_HOME%/bin 加入到系统变量 PATH 中。

安装 jBPM
jBPM 的下载地址:http://sourceforge.net/projects/jbpm/files/

------------------------------------------------------------------------------------------
2 、建库

MySQL 中创建一个库,库名: jbpmdb

3 、生成建表的 SQL 语句并建表


这个构建文件${jbpm.home}/db/build.xml包含了脚本 用来创建和删除数据库结构的操作。
进入到这个目录下,运行ant -p 可以获得更多细节。

在你的数据库中创建表结构:

首先,更新${jbpm.home}/db/jdbc中的数据库配置文件。

然后,在D:/jbpm-4.0/db/build.xml
<!-- DEFAULT PROPERTY VALUES -->
<property name="database" value="mysql" />
更改为
mysql

然后在db目录下执行ant create.jbpm.schema

可以看到 MySQL 客户端中执行“ mysql.create.sql ”脚本,这样

将在 jbpmdb 库中创建一个个的数据表。
------------------------------------------------------------------------------------------


4

安装 jBPM 4的 Eclipse 开发插件

jBPM 4的 Eclipse 开发插件 只有GPD


流程设计器(GPD)
图形化流程设计器(GPD)使用Eclipse作为其平台, 并把GPD插件安装到eclipse上。


使用Eclipse软件升级(Software Update)机制安装设计器是非常简单的。
在gpd目录下有一个gpd/jbpm-gpd-site.zip文件, 这就是更新站点(archived update site)的 压缩包。

在Eclipse里添加更新站点的方法:

帮助 --> 安装新软件...
点击 添加...
在 添加站点 对话框中,单击 压缩包...
找到 gpd/jbpm-gpd-site.zip 并点击 '打开'
点击 确定 在 添加站点 对话框中,会返回到 '安装'对话框
选择出现的 jPDL 4 GPD 更新站点
点击 下一步.. 然后点击 完成
接受协议
当它询问的时候重启eclipse

5

配置jBPM运行时
点击 Window --> Preferences
选择 JBoss jBPM --> jBPM 4 --> Runtime Locations
点击 Add...
在 Add Location 对话框中,输入一个名字,比如 jbpm-4.0 然后点击 Search...
在 Browse For Folder 对话框中,选择你的jbpm根目录,然后点击 OK
点击 OK 在 Add Location 对话框中

6

定义jBPM用户库
如何在你的工作空间定义一个用户库, 用来放置jBPM的库文件。 如果你创建一个新工程, 只需要将用户库全部添加到build path下

点击窗口 --> 属性(Windows --> Preferences)
选择Java --> 创建路径 --> 用户类库(Java --> Build Path --> User Libraries)
点击新建(New)
类型名字jBPM Libraries
点击添加JARs(Add JARs...)
找到jBPM安装程序下的lib目录
选择lib下的所有jar文件并点击打开(Open)
选择jBPM Libraries作为入口
重新点击添加JARs(Add JARs)
在jBPM的安装程序的根目录下选择jbpm.jar文件
点击打开(Open)
在jbpm.jar下选择源码附件(Source attachment)作为入口
点击编辑(Edit)
在源码附件的配置(Source Attachment Configuration)对话框中,点击目录(External Folder...)
找到jBPM安装程序下的src目录
点击选择(Choose)
点击两次'确定'(Ok)会关闭所有对话框

 

7  jBPM 的 demo


新建jBPM项目
主菜单“文件->新建->项目”,在弹出的对话框里,有“ java Project ”项


选上好,单击“下一步”,起个名“ myjbpm ”,然后就可以单击“完成”了。然后手动

创建src/test/config

copy

D:/jbpm-4.0/examples/src

2009-07-07 15:40               546 jbpm.cfg.xml
2009-07-07 15:40             1,085 jbpm.hibernate.cfg.xml
2009-07-07 15:40                72 jbpm.mail.properties
2009-07-07 15:40               418 jbpm.mail.templates.examples.xml
2009-07-07 15:40               637 logging.properties

config下
8 修改jbpm.hibernate.cfg.xml
       hibernate.cfg.xml 的默认设置是用 HSQL ,这是一个内存数据库,这种内存数据库用来代替项

目实际所用的数据库来做单元测试挺不错的。不过我们这里是要试试用 MySQL 、 Oracle ,那就改一下

设置吧。

注:配置值可参考 D:/jbpm-4.0/db/hibernate.cfg对应子目录下的 hibernate.properties 文

件。

8.1 、 MySQL 的更改如下:

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm</property>

<property name="hibernate.connection.username">root</property>

<property name="hibernate.connection.password">123456</property>

8.2 、 Oracle 的更改如下:

<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>

<property

name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

<property

name="hibernate.connection.url">jdbc:oracle:thin:@192.168.123.10:1521:wxxrDB</property>

<property name="hibernate.connection.username">xiong</property>

<property name="hibernate.connection.password">xiong</property>

如果你装了 Oracle 的客户端,并且 D:/oracle/ora92/network/ADMIN/tnsnames.ora 里做了如下的设

WXXRDB_192.168.123.10 =

(DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.123.10)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SID = wxxrDB)

      (SERVER = DEDICATED)

    )

)


则 Oracle 的 hibernate.connection.url 项也可以设为: jdbc:oracle:oci:@WXXRDB_192.168.123.10

 

9 开始demo


10定义流程

流程的定义文件是 pd.jpdl.xml ,这个是一个关键文件, jBPM 4的很大一部份内容都是关于

它的。
------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>

<process name="pd" xmlns="http://jbpm.org/4.0/jpdl ">
   <start name="start1" g="207,62,48,48">
      <transition name="to state1" to="state1" g="-59,-17"/>
   </start>
   <end name="end1" g="208,293,48,48"/>
   <state name="state1" g="185,155,92,52">
      <transition name="to end1" to="end1" g="-47,-17"/>
   </state>
</process>
------------------------------------------------------------------------------------------

说明:

 


------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------

OK ,后台的程序就算写完了(前台客户端的程序还没写),下面开始部署。

11部署pd.jpdl.xml
       我们要把pd.jpdl.xml 的流程定义的数据部署到数据库中,因为 jBPM 在正式运行

的时候不是去读 pd.jpdl.xml 文件,而是去读数据库中的流程定义。 这里写了一个

JUnit 程序来部署 processdefinition.xml ,当然你用普通的 Java Main 也可以。

参考
D:/jbpm4/src/org/jbpm/examples/services/ServicesTest.java
------------------------------------------------------------------------------------------
在本方法执行完毕后,检查jbpm4_deployment表会多了一条记录
jbpm4_deployprop表会多了三条记录,对应id,key,version
jbpm4_lob 表会多了一条记录,保存流程图

package deploy;


import junit.framework.TestCase;

import org.jbpm.api.Configuration;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.HistoryService;
import org.jbpm.api.ManagementService;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.RepositoryService;
import org.jbpm.api.TaskService;

public class ServicesTest extends TestCase {

public void testObtainServicesAndDeployProcess() {

    Configuration configuration = new Configuration();

    ProcessEngine processEngine = configuration.buildProcessEngine();

  
    RepositoryService repositoryService = processEngine.getRepositoryService();
    ExecutionService executionService = processEngine.getExecutionService();
    TaskService taskService = processEngine.getTaskService();
    HistoryService historyService = processEngine.getHistoryService();
    ManagementService managementService = processEngine.getManagementService();
   
    // 开始部署一个新的流程文件
    String deploymentId = repositoryService.createDeployment()

       // .addResourceFromClasspath("org/jbpm/examples/services/Order.jpdl.xml")
    .addResourceFromClasspath("pd.jpdl.xml")
        .deploy();

   // repositoryService.deleteDeployment(deploymentId);
}
}


------------------------------------------------------------------------------------------
运行此程序,在控制台打印了一些日志,通过。如果出错,仔佃阅读出错信息以判断错误原因

12 从数据库中的查看部署效果
无论是 MySQL 还是 Oracle ,查询 jbpm4_deployment表,你会发现多了一条记录
jbpm4_deployprop表会多了三条记录,对应id,key,version
jbpm4_lob 表会多了一条记录,保存流程图


Service就是PVM对外发布的服务,包括RepositoryService(比如部署jpdl文件),
ExecutionService(负责管理执行),TaskService,ManagementService等等.可以说这是给用户调用的API.比如我们看下他们的一些方法.
RepositoryService接口的一些方法:

public interface RepositoryService {
NewDeployment createDeployment();
ProcessDefinitionQuery createProcessDefinitionQuery();
...
}

ExecutionService的一些方法:

public interface ExecutionService {
ProcessInstance startProcessInstanceById(String processDefinitionId);
ProcessInstance signalExecutionById(String executionId);
...
}

ManagementService的接口:

public interface ManagementService {
void executeJob(long jobDbid);
JobQuery createJobQuery();
}

 

------------------------------------------------------------------------------------------
13  jBPM4 的客户端开发
有了前面的 后台流程,我们就要开始客户端程序了。正如前面提到的,本文不写 JSP ,而

改采用 JUnit 的形式,输出则用 System.out.println 。举一反三,知道在方法中输入及用 println

输出,在 JSP 和 SWING 等 GUI 界面还不是一样嘛。

这个 JUnit 客户端,我们就借用创建项目时自动生成的 SimpleProcessTest.java 了,改写后如下:
------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------
这个例子还是很简单

不过没关系。下面的

内容我将完成一个更完整的实例。

.1、安装JDK 1.2、安装Ant Ant 是使用 jBPM 必须的一个工具。 jBPM 中的很多操作都要用到 Ant 。 安装方法: ( 1 )先下载: 为了执行ant脚本,你需要1.7.0或更高版本的apache ant: http://ant.apache.org/bindownload.cgi ( 2 )解压到 D:\ant (当然其他目录也可以)。 ( 3 )设置如下系统变量: ANT_HOME=d:\ant 。 ( 4 )把 %ANT_HOME%\bin 加入到系统变量 PATH 中。 安装 jBPM jBPM下载地址: http://sourceforge.net/project/showfiles.php?group_id=70542&package_id=268068 2 、建库 MySQL 中创建一个库,库名: jbpmdb 3 、生成建表的 SQL 语句并建表 这个构建文件${jbpm.home}/db/build.xml包含了脚本 用来创建和删除数据库结构的操作。 进入到这个目录下,运行ant -p 可以获得更多细节。 你的数据库中创建表结构: 首先,更新${jbpm.home}/db/jdbc中的数据库配置文件。 然后,在D:\jbpm-4.0\db\build.xml 更改为 mysql 然后在db目录下执行ant create.jbpm.schema 可以看到 MySQL 客户端中执行“ mysql.create.sql ”脚本,这样 将在 jbpmdb 库中创建一个个的数据表。 --------------------------------------------------------------------- 安装 jBPM 4的 Eclipse 开发插件 jBPM 4的 Eclipse 开发插件 只有GPD 流程设计器(GPD) 图形化流程设计器(GPD)使用Eclipse作为其平台, 并把GPD插件安装到eclipse上。 使用Eclipse软件升级(Software Update)机制安装设计器是非常简单的。 在gpd目录下有一个gpd/jbpm-gpd-site.zip文件, 这就是更新站点(archived update site)的 压缩包。 在Eclipse里添加更新站点的方法: 帮助 --> 安装新软件... 点击 添加... 在 添加站点 对话框中,单击 压缩包... 找到 gpd/jbpm-gpd-site.zip 并点击 '打开' 点击 确定 在 添加站点 对话框中,会返回到 '安装'对话框 选择出现的 jPDL 4 GPD 更新站点 点击 下一步.. 然后点击 完成 接受协议 当它询问的时候重启eclipse 5 配置jBPM运行时 点击 Window --> Preferences 选择 JBoss jBPM --> jBPM 4 --> Runtime Locations 点击 Add... 在 Add Location 对话框中,输入一个名字,比如 jbpm-4.0 然后点击 Search... 在 Browse For Folder 对话框中,选择你的jbpm根目录,然后点击 OK 点击 OK 在 Add Location 对话框中 6 定义jBPM用户库 如何在你的工作空间定义一个用户库, 用来放置jBPM的库文件。 如果你创建一个新工程, 只需要将用户库全部添加到build path下 点击窗口 --> 属性(Windows --> Preferences) 选择Java --> 创建路径 --> 用户类库(Java --> Build Path --> User Libraries) 点击新建(New) 类型名字jBPM Libraries 点击添加JARs(Add JARs...) 找到jBPM安装程序下的lib目录 选择lib下的所有jar文件并点击打开(Open) 选择jBPM Libraries作为入口 重新点击添加JARs(Add JARs) 在jBPM的安装程序的根目录下选择jbpm.jar文件 点击打开(Open) 在jbpm.jar下选择源码附件(Source attachment)作为入口 点击编辑(Edit) 在源码附件的配置(Source Attachment Configuration)对话框中,点击目录(External Folder...) 找到jBPM安装程序下的src目录 点击选择(Choose) 点击两次'确定'(Ok)会关闭所有对话框 7  jBPM 的 demo 新建jBPM项目 主菜单“文件->新建->项目”,在弹出的对话框里,有“ java Project ”项 选上好,单击“下一步”,起个名“ myjbpm ”,然后就可以单击“完成”了。然后手动 创建src/test/config copy D:\jbpm-4.0\examples\src 2009-07-07 15:40               546 jbpm.cfg.xml 2009-07-07 15:40             1,085 jbpm.hibernate.cfg.xml ...... .....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值