jbpm4.4与spring集成
时间:2010-07-23
来源:互联网
本帖最后由 surpass_li 于 2010-07-23 17:08 编辑
jbpm4.3与spring 集成
(参照http://www.blogjava.net/pengo/archive/2010/01/04/308219.html 做的)
下面是集成方法。
版本:
jbpm4.3
spring 3.0.2
mysql5.1.40
直接从jbpm4.4自带的文件到src目录:
从jbpm-4.4"install"src"cfg"hibernate"jdbc复制mysql.hibernate.cfg.xml到src目录,文件名改为hibernate.cfg.xml。
从jbpm-4.4"install"src"cfg"spring复制applicationContext.xml到src目录。
从jbpm-4.4"install"src"cfg"jbpm复制spring.jbpm.cfg.xml到src目录,文件名改为jbpm.cfg.xml。
修改applicationContext.xml、hibernate.cfg.xml的数据库配置信息,jbpm4.4与spring的集成就完成了,可以自己写测试文件测试,集成非常容易。
不过在applicationContext.xml和hibernate.cfg.xml两个文件都要改数据库信息有点麻烦,所以只复制 applicationContext.xml、spring.jbpm.cfg.xml两个文件到src目录,把hibernate.cfg.xml的配置整进spring的配置文件applicationContext.xml中。
applicationContext.xml
复制代码
新建文件hibernate.properties,主要用来配置连接数据库信息
复制代码
以后要改数据库配置信息也只在这个文件修改就可以了。
测试用的流程swing.jpdl.xml
<?xml version="1.0" encoding="UTF-8"?>
<process name="swing" xmlns="http://jbpm.org/4.3/jpdl">
<start g="94,64,48,48" name="start1">
<transition g="-52,-22" name="A" to="A"/>
</start>
<task assignee="A" g="73,195,92,52" name="A">
<transition g="-52,-22" name="B" to="B"/>
</task>
<task assignee="B" g="266,192,92,52" name="B">
<transition g="-40,-21" name="end" to="end1"/>
</task>
<end g="290,327,48,48" name="end1"/>
</process>
测试代码
public class Main {
public static void main(String[] args) {
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"
;
applicationContext.start();
ProcessEngine processEngine = (ProcessEngine)applicationContext.getBean("processEngine"
;
ExecutionService executionService = processEngine.getExecutionService();
TaskService taskService = processEngine.getTaskService();
//发布流程
String deploymentId = processEngine.getRepositoryService().createDeployment()
.addResourceFromClasspath("resource/swing.jpdl.xml"
.deploy();
System.out.println("流程发布ID:"+deploymentId);
//启动一个流程实例
ProcessInstance processInstance = executionService.startProcessInstanceByKey("swing"
;
System.out.println("流程实例ID:" + processInstance.getId());
//A处理任务
List<Task> taskList_A = taskService.findPersonalTasks("A"
;
System.out.println("A待处理任务数:" + taskList_A.size());
if(taskList_A.size() > 0){
Task task = taskList_A.get(0);
taskService.completeTask(task.getId());
}
//B处理任务
List<Task> taskList_B = taskService.findPersonalTasks("B"
;
System.out.println("B待处理任务数:" + taskList_B.size());
if(taskList_B.size() > 0){
Task task = taskList_B.get(0);
taskService.completeTask(task.getId());
}
}
}
附件是完整的集成文件和测试代码,仅在spring2.5.6测试过,要运行该部分代码,需要添加jbpm4.4和spring的相关依赖库文件参照.classpath时行添加。
源代码:
jbpm4.4-spring.rar (5.87 KB)
jbpm4.3与spring 集成
(参照http://www.blogjava.net/pengo/archive/2010/01/04/308219.html 做的)
下面是集成方法。
版本:
jbpm4.3
spring 3.0.2
mysql5.1.40
直接从jbpm4.4自带的文件到src目录:
从jbpm-4.4"install"src"cfg"hibernate"jdbc复制mysql.hibernate.cfg.xml到src目录,文件名改为hibernate.cfg.xml。
从jbpm-4.4"install"src"cfg"spring复制applicationContext.xml到src目录。
从jbpm-4.4"install"src"cfg"jbpm复制spring.jbpm.cfg.xml到src目录,文件名改为jbpm.cfg.xml。
修改applicationContext.xml、hibernate.cfg.xml的数据库配置信息,jbpm4.4与spring的集成就完成了,可以自己写测试文件测试,集成非常容易。
不过在applicationContext.xml和hibernate.cfg.xml两个文件都要改数据库信息有点麻烦,所以只复制 applicationContext.xml、spring.jbpm.cfg.xml两个文件到src目录,把hibernate.cfg.xml的配置整进spring的配置文件applicationContext.xml中。
applicationContext.xml
- <?xml version="1.0" encoding="UTF-8"?>
-
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:p="http://www.springframework.org/schema/p"
- xmlns:jee="http://www.springframework.org/schema/jee"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
- default-lazy-init="true">
- <context:annotation-config />
-
- <bean
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
- p:location="hibernate.properties"
- p:ignoreUnresolvablePlaceholders="true" />
-
-
- <bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" />
-
- <bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />
-
- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="mappingResources">
- <list>
- <value>jbpm.repository.hbm.xml</value>
- <value>jbpm.execution.hbm.xml</value>
- <value>jbpm.history.hbm.xml</value>
- <value>jbpm.task.hbm.xml</value>
- <value>jbpm.identity.hbm.xml</value>
- </list>
- </property>
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">${dataSource.dialect}</prop>
- <prop key="hibernate.hbm2ddl.auto">${dataSource.hbm2ddl.auto}</prop>
- </props>
- </property>
- </bean>
-
- <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory" />
- <property name="dataSource" ref="dataSource" />
- </bean>
-
- <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName" value="${dataSource.driverClassName}" />
- <property name="url" value="${dataSource.url}" />
- <property name="username" value="${dataSource.username}" />
- <property name="password" value="${dataSource.password}" />
- </bean>
-
- </beans>
- dataSource.password=
- dataSource.username=root
- dataSource.databaseName=jbpmdb
- dataSource.driverClassName=com.mysql.jdbc.Driver
- dataSource.dialect=org.hibernate.dialect.MySQLInnoDBDialect
- dataSource.serverName=localhost:3306
- dataSource.url=jdbc:mysql://${dataSource.serverName}/${dataSource.databaseName}
- dataSource.properties=user=${dataSource.username};databaseName=${dataSource.databaseName};serverName=${dataSource.serverName};password=${dataSource.password}
- dataSource.hbm2ddl.auto=update
测试用的流程swing.jpdl.xml
<?xml version="1.0" encoding="UTF-8"?>
<process name="swing" xmlns="http://jbpm.org/4.3/jpdl">
<start g="94,64,48,48" name="start1">
<transition g="-52,-22" name="A" to="A"/>
</start>
<task assignee="A" g="73,195,92,52" name="A">
<transition g="-52,-22" name="B" to="B"/>
</task>
<task assignee="B" g="266,192,92,52" name="B">
<transition g="-40,-21" name="end" to="end1"/>
</task>
<end g="290,327,48,48" name="end1"/>
</process>
测试代码
public class Main {
public static void main(String[] args) {
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"

applicationContext.start();
ProcessEngine processEngine = (ProcessEngine)applicationContext.getBean("processEngine"

ExecutionService executionService = processEngine.getExecutionService();
TaskService taskService = processEngine.getTaskService();
//发布流程
String deploymentId = processEngine.getRepositoryService().createDeployment()
.addResourceFromClasspath("resource/swing.jpdl.xml"

System.out.println("流程发布ID:"+deploymentId);
//启动一个流程实例
ProcessInstance processInstance = executionService.startProcessInstanceByKey("swing"

System.out.println("流程实例ID:" + processInstance.getId());
//A处理任务
List<Task> taskList_A = taskService.findPersonalTasks("A"

System.out.println("A待处理任务数:" + taskList_A.size());
if(taskList_A.size() > 0){
Task task = taskList_A.get(0);
taskService.completeTask(task.getId());
}
//B处理任务
List<Task> taskList_B = taskService.findPersonalTasks("B"

System.out.println("B待处理任务数:" + taskList_B.size());
if(taskList_B.size() > 0){
Task task = taskList_B.get(0);
taskService.completeTask(task.getId());
}
}
}
附件是完整的集成文件和测试代码,仅在spring2.5.6测试过,要运行该部分代码,需要添加jbpm4.4和spring的相关依赖库文件参照.classpath时行添加。
源代码:

作者: surpass_li 发布时间: 2010-07-23
use [code] plz
作者: realmon 发布时间: 2010-07-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28