
第 1 章 导言
上一页
下一页
第 1 章 导言
最好使用 firefox 浏览这份教程。 在使用 internet explorer 的时候会有一些问
题。
1.1. 许可证与最终用户许可协议
jBPM 是依据 GNU Lesser General Public License(LGPL) 和 JBoss End User
License Agreement(EULA)中的协议发布的, 请参考 完整的 LGPL 协议和 完整
的最终用户协议。
1.2. 下载
可以从 sourceforge 上下载发布包。
http://sourceforge.net/projects/jbpm/files/
1.3. 源码
可以从 jBPM 的 SVN 仓库里下载源代码。
https://anonsvn.jboss.org/repos/jbpm/jbpm4/
1.4. 什么是 jBPM
jBPM 是一个可扩展、灵活的流程引擎, 它可以运行在独立的服务器上或者嵌入
任何 Java 应用中。
1.5. 文档内容
在这个用户指南里, 我们将介绍在持久执行模式下的 jPDL 流程语言。 持久执行
模式是指流程定义、 流程执行以及流程历史都保存在关系数据库中, 这是
jBPM 实际通常使用的方式。
这个用户指南介绍了 jBPM 中支持的使用方式。 开发指南介绍了更多的、高级的、
定制的、 没有被支持的选项。

1.6. 从 jBPM 3 升级到 jBPM 4
没办法实现从 jBPM 3 到 jBPM 4 的升级。 可以参考开发指南来获得更多迁移的信
息。
1.7. 报告问题
在用户论坛或者我们的支持门户报告问题的时候, 请遵循如下模板:
=== 环境 ==============================
- jBPM Version : 你使用的是哪个版本的 jBPM?
- Database : 使用的什么数据库以及数据库的版本
- JDK : 使用的哪个版本的 JDK?如果不知道可以使用'java -version'查看版本
信息
- Container : 使用的什么容器?(JBoss, Tomcat, 其他)
- Configuration : 你的 jbpm.cfg.xml 中是只导入了 jbpm.jar 中的默认配置,
还是使用了自定义的配置?
- Libraries : 你使用了 jbpm 发布包中完全相同的依赖库的版本?
还是你修改了其中一些依赖库?
=== Process ==================================
这里填写 jPDL 流程定义
=== API ===================================
这里填写你调用 jBPM 使用的代码片段
=== Stacktrace ==============================
这里填写完整的错误堆栈
=== Debug logs ==============================
这里填写调试日志
=== Problem description =========================
请保证这部分短小精悍并且切入重点。比如,API 没有如期望中那样工作。
或者,比如,ExecutionService.SignalExecutionById 抛出了异常。
聪明的读者可能已经注意到这些问题已经指向了可能导致问题的几点原因:)
特别是对依赖库和配置的调整都很容易导致问题。 这就是为什么我们在包括安
装和使用导入实现建议配置机制时花费了大量的精力。 所以,在你开始在用户
手册覆盖的知识范围之外修改配置之前,一定要三思而行。 同时在使用其他版
本的依赖库替换默认的依赖库之前, 也一定要三思而行。

第 2 章 安装配置
2.1. 发布
只需要把 jBPM (jbpm-4.X.zip) 下载下来,然后解压到你的硬盘上的什么地方。
你将看到下面的子目录:
� doc: 用户手册,javadoc 和开发指南
� examples: 用户手册中用到的示例流程
� install: 用于不同环境的安装脚本
� lib: 第三方库和一些特定的 jBPM 依赖库
� src: 源代码文件
� jbpm.jar: jBPM 主库归档
� migration: 参考开发指南
2.2. 必须安装的软件
jBPM 需要 JDK (标准 java)5 或更高版本。
http://java.sun.com/javase/downloads/index.jsp
为了执行 ant 脚本,你需要 1.7.0 或更高版本的 apache ant:
http://ant.apache.org/bindownload.cgi
2.3. 快速上手
这个范例安装是最简单的方式开始使用 jBPM。 这一章介绍了完成范例安装的步
骤。
如果你之前下载过 jboss-5.0.0.GA.zip,你可以把它放到
${jbpm.home}/install/downloads 目录下。 否则脚本会为你下载它,但是它会
消耗一些时间(与你的网络情况有关)。 eclipse-jee-galileo-win32.zip 也一
样(或者 eclipse-jee-galileo-linux-gtk(-x86_64).tar.gz 在 linux 平台下
和 eclipse-jee-galileo-macosx-carbon.tar.gz 在 Mac OSX 平台下)。
打开命令控制台,进入目录${jbpm.home}/install。 然后运行
ant demo.setup.jboss

或者
ant demo.setup.tomcat
这将
� 把 JBoss 安装到${jbpm.home}/jboss-5.0.0.GA 目录
� 把 jBPM 安装到 JBoss 中。
� 安装 hsqldb,并在后台启动。
� 创建数据库结构
� 在后台启动 JBoss
� 根据示例创建一个 examples.bar 业务归档,把它发布到 jBPM 数据库中
� 从${jbpm.home}/install/src/demo/example.identities.sql,读取用户
和组。
� 安装 eclipse 到${jbpm.home}/eclipse
� 启动 eclipse
� 安装 jBPM web 控制台
� 安装 Signavio web 建模器
当这些都完成后,JBoss(或 Tomcat,根据 demo.setup 脚本中的选择)会在后
台启动。 一旦 eclipse 完成启动,你可以继续执行下面的教程 第 3 章
流程
设计器(GPD)
来开始编码你的 jBPM 业务流程。
或者你可以启动建模流程,通过 Signavio web 设计器。
或者使用 jBPM 控制台。 你可以使用下面用户之一进行登陆:
表 2.1. 示例控制台用户:
用户名
密码
alex
password
mike
password
peter
password
mary
password
目前存在的问题: 现在,对于一些比较慢的机器,在初始化报表时, 控制台的
失效时间太短了,所以当你第一次请求报表时, 会出现超时,控制台会崩溃。
注销,然后再次登录,就可以避过这个问题。 这个问题已经提交到 JIRA 中了
JBPM-2508
2.4. 安装脚本

jBPM 下载包中包含了一个 install 目录, 目录中有一个 ant 的 build.xml 文件,
你可以使用它来 把 jBPM 安装到你的应用环境中。
最好严格按照这些安装脚本, 进行安装和发布 jBPM 配置文件。我们可以自定义
jBPM 配置文件, 但这是不被支持的。
要想调用安装脚本,打开命令行,进入${jbpm.home}/install 目录。 使用 ant -p
你可以看到 这里可以使用的所有脚本。脚本的参数都设置了默认值, 可以快速
执行,下面列表给出了可用脚本的概况:
� demo.setup.jboss:安装 jboss,把 jbpm 安装到 jboss 中, 启动 jboss,
创建 jbpm 数据库表结构,部署实例,加载实例身份认证信息, 安装并启动
eclipse
� demo.setup.tomcat:安装 tomcat,把 jboss 安装到 tomcat 中, 启动
tomcat,创建 jbpm 数据库表结构,部署实例,加载实例身份认证信息, 安装并
启动 eclipse
� clean.cfg.dir:删除${jbpm.home}/install/generated/cfg 文件夹。
� create.cfg:创建一个配置在 ${jbpm.home}/install/generated/cfg 下,
基于当前的参数。
� create.jbpm.schema:在数据库中创建 jbpm 表
� create.user.webapp 创建一个基本的 webapp 在
${jbpm.home}/install/generated/user-webapp 中
� delete.jboss:删除安装的 jboss
� delete.tomcat:删除安装的 Tomcat
� demo.teardown.jboss:删除 jbpm 数据库的表并停止 jboss
� demo.teardown.tomcat:停止 tomcat 和 hsqldb 服务器(如果需要)
� drop.jbpm.schema:从数据库中删除 jbpm 的表
� get.eclipse:下载 eclipse 如果它不存在
� get.jboss:下载一个 JBoss AS,已经测试过当前的 jBPM 版本,如果它不
存在
� get.tomcat:下载一个 Tomcat,已经测试过当前的 jBPM 版本,如果它不
存在
� hsqldb.databasemanager:启动 hsqldb 数据库管理器
� install.eclipse:解压 eclipse,下载 eclipse 如果它不存在
� install.jboss:下载 JBoss 如果它不存在,并解压
� install.jbpm.into.jboss:把 jBPM 安装到 JBoss 中
� install.tomcat:把 tomcat 下载到${tomcat.distro.dir}如果 tomcat
不存在,并解压 tomcat
� install.jbpm.into.tomcat:把 jBPM 安装到 tomcat 中
� install.examples.into.tomcat:部署所有的实例流程
� install.signavio.into.jboss:把 signavio 安装到 jboss 中
� install.signavio.into.tomcat 把 signavio 安装到 tomcat 中
� load.example.identities:读取实例用户和用户组数据到数据库
� reinstall.jboss:删除之前的 jboss 安装,并重新安装 jboss