源码下载
https://anonsvn.jboss.org/repos/jbpm/jbpm4/
JBPM是什么?
jBPM是一个可扩展、灵活的流程引擎, 它可以运行在独立的服务器上或者嵌入任何Java应用中。
使用的解析语言:JPDL
发布
只需要把jBPM (jbpm-4.X.zip) 下载下来,然后解压到你的硬盘上的什么地方。 你将看到下面的子目录:
•doc: 用户手册,javadoc和开发指南
•examples: 用户手册中用到的示例流程
•install: 用于不同环境的安装脚本
•lib: 第三方库和一些特定的jBPM依赖库
•src: 源代码文件
•jbpm.jar: jBPM主库归档
•migration: 参考开发指南
必须安装的软件
jBPM需要JDK (标准java)5或更高版本。
http://java.sun.com/javase/downloads/index.jsp
为了执行ant脚本,你需要1.7.0或更高版本的apache ant:
http://ant.apache.org/bindownload.cgi
安装数据库
C:\jbpm-4.4\jbpm-4.4\install\src\db\create
数据库的sql文件在这个路径下可以直接导入,也可以通过ant进行更新数据库的配置。
安装插件
网上n多教程了,不截图了,按照网上其它的配置一下吧,挺全的都。
工程创建
打开eclipse新建eclipse工程
完成后将examples中的几个配置文件导进来
修改jbpm.hibernate.cfg.xml
我使用的是mysql,文件中内容如下:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpmdb</property>
<property name="hibernate.connection.username">jbpm</property>
<property name="hibernate.connection.password">jbpm</property>
<!-- <property name="hibernate.hbm2ddl.auto">create-drop</property> -->
<!-- <property name="hibernate.format_sql">true</property> -->
<mapping resource="jbpm.repository.hbm.xml" />
<mapping resource="jbpm.execution.hbm.xml" />
<mapping resource="jbpm.history.hbm.xml" />
<mapping resource="jbpm.task.hbm.xml" />
<mapping resource="jbpm.identity.hbm.xml" />
</session-factory>
</hibernate-configuration>
新建流程定义文件如下:
是一个最简单的流程
新建TestHello.java并且继承JbpmTestCase
测试程序如下:
public class TestHello extends JbpmTestCase {
String deploymentId;
protected void setUp() throws Exception {
super.setUp();
deploymentId = repositoryService.createDeployment()
.addResourceFromClasspath("com/jbpm/hellojbpm.jpdl.xml")
.deploy();
}
protected void tearDown() throws Exception {
repositoryService.deleteDeploymentCascade(deploymentId);
super.tearDown();
}
public void testHello() {
ProcessInstance processInstance = executionService
.startProcessInstanceByKey("hellojbpm");
System.out.println("流程实例Id:" + processInstance.getId());
System.out
.println("流程定义Id:" + processInstance.getProcessDefinitionId());
// 判断当前是否位于start节点
System.out.println("是否位于start节点:" + processInstance.isActive("start"));
// 判断当前是否位于state节点
System.out.println("是否位于zhangsan节点:" + processInstance.isActive("zhangsan"));
System.out.println("------------------------>使流程继续向下执行");
Execution executionInA = processInstance
.findActiveExecutionIn("zhangsan");
assertNotNull(executionInA);
// 判断当前是否位于state节点
processInstance = executionService.signalExecutionById(executionInA
.getId());
Execution executionInB = processInstance.findActiveExecutionIn("lishi");
assertNotNull(executionInB);
System.out.println("是否位于lishi节点:" + executionInB.isActive("lishi"));
processInstance = executionService.signalExecutionById(executionInB
.getId());
Execution executionInC = processInstance
.findActiveExecutionIn("wangwu");
assertNotNull(executionInC);
System.out.println("是否位于wangwu节点:" + executionInC.isActive("wangwu"));
}
}
运行测试junit文件
结果如下:
流程实例Id:hellojbpm.220007
流程定义Id:hellojbpm-1
是否位于start节点:false
是否位于zhangsan节点:true
------------------------>使流程继续向下执行
是否位于lishi节点:true
是否位于wangwu节点:true
流程一步一步的向下执行了,在这个示例中使用了start和state结点,在后面的示例中,会逐步深入到其它的示例中。
在运行的过程中曾经遇到过一个错误
16:53:39,280 SEV | [AbstractFlushingEventListener] Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#7]
经过查找之后是hibernate的方言指定的有问题,将
org.hibernate.dialect.MySQLDialect
修改成
org.hibernate.dialect.MySQLInnoDBDialect
问题就可以解决了。
相关推荐
jbpm4.4 ibatis-spring 整合
1. **系统架构**:jBPM4.4基于Eclipse Persistence API(JPA)和Hibernate ORM,提供了持久化服务,确保流程实例的可靠存储。它还包括一个规则引擎,如Drools,用于业务规则的处理。 2. **流程定义**:jBPM支持使用...
jbpm-4.4\jbpm-4.4\doc\javadocsjbpm-4.4\jbpm-4.4\doc\javadocsjbpm-4.4\jbpm-4.4\doc\javadocs
【jbpm-4.4.zip part03】这个压缩文件是关于jbpm 4.4版本的组成部分,jbpm(Java Business Process Management)是一个开源的工作流管理系统,它提供了业务流程建模、部署、执行和监控的功能。jbpm 4.4是该系统的一...
【jbpm4.4-demo】是一个基于jbpm4.4版本的完整演示项目,它包含了所有必要的组件和配置,使得用户可以直接下载并运行,体验一个请假流程的示例。jbpm(Java Business Process Management)是一个开源的工作流和业务...
JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,它使用要遵循 ASL...
JBPM4.4-API-CHM官方英文版(自己制作整合)
1. **流程定义语言**:jBPM 4.4支持多种流程定义语言,包括BPMN2.0(Business Process Model and Notation),这是一种标准化的图形表示法,用于描述业务流程。此外,它还支持JPDL(jBPM Process Definition ...
JBPM4.4-api
### jBPM4.4开发指南关键知识点解析 ...以上内容详细介绍了 jBPM4.4 的基本概念、特性以及如何搭建开发环境。这对于初学者来说是非常有用的参考资料,可以帮助他们快速入门并掌握 jBPM4.4 的核心知识和技术要点。
jBPM,全称是Java Business Process Management,是一种基于J2EE的轻量级工作流管理系统。jBPM是公开源代码项目,它使用要遵循 Apache License。jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为...
【jbpm4.4-请假流程】是一个基于Java开发的流程引擎示例,主要用于演示如何在企业级应用中实现请假流程。jbPM是Java Business Process Management的缩写,它是一个开源的工作流和业务流程管理系统,提供了对BPMN 2.0...
1. **jbpm4.4**: - jbpm4.4是jbpm的第4代版本,提供了一套完整的流程管理解决方案,包括流程设计、执行、监控和优化。 - 它支持BPMN2.0标准,使得业务流程可以通过图形化的方式进行建模,非技术人员也能理解和...
**JBPM4.4入门详解** JBPM,全称Java Business Process Management,是一个开源的工作流管理系统,用于管理和执行业务流程。JBPM4.4是该系统的一个特定版本,它提供了全面的工作流支持,包括流程设计、执行、监控和...
【jbpm4.4开发包2】是针对Java业务流程管理(Business Process Management,简称BPM)系统的一个重要版本,由JBoss公司开发并维护。jbpm4.4是jbpm框架的第4个主要版本的第4次迭代,它为开发者提供了强大的工具集来...
jbpm-gpd-site 4.4.zip 是一个与jbpm(Java Business Process Management)相关的压缩文件,它包含的是jbpm-eclipse插件的特定版本,适用于jbpm 4.4框架。jbpm是一个开源的工作流管理系统,用于设计、执行和管理业务...
**二、jBPM4.4开发环境搭建** 1. **安装JDK**:jBPM需要Java环境支持,确保安装了JDK并设置好环境变量。 2. **下载jBPM**:访问官网获取jBPM4.4的发行版,解压到本地目录。 3. **集成IDE**:常用IDE如Eclipse或...
1. 工作流引擎:jbpm4.4的核心是其工作流引擎,它负责执行流程实例。引擎支持流程定义的动态加载、并发控制和事务管理,确保流程的正确执行。 2. 图形化建模工具:jbpm提供了一个基于Eclipse的图形化建模工具,用户...
**Jbpm4.4整合Spring Hibernate4详解** Jbpm4.4是一个流程管理系统,它结合了业务流程管理(BPM)和工作流服务,提供了强大的流程定义、执行和监控能力。在这个版本中,Jbpm与Spring框架和Hibernate ORM工具进行了...