在jbpm4的项目中,在下面的网址中看到了简单集成spring 和 jbpm4的集成方法。
http://www.slideshare.net/guest8d4bce/spring-integration-with-jbpm4
jbpm4的分支中已经有了集成的代码
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbpm_svn/jbpm4/branches/ainze/
唯一的遗憾就是代码目前还没有和最新的代码同步,于是乎就简单的对这两块代码先做了些合并工作.
数据库:mysql
集成项:spring2.5 hibernate3.3 jbpm4
相关的类:
org.jbpm.pvm.internal.cfg.JbpmConfiguration (其中的buildProcessEngine方法 有些东西没有合并进去,可能会有些问题 ,有兴趣的可以探寻下)
org.jbpm.pvm.internal.cfg.SpringConfiguration(Tom Baeyens在TODO中,这个是ainze写的)
org.jbpm.pvm.internal.env.SpringPvmEnvironment(ainze)
org.jbpm.pvm.internal.spring.SpringConfigurationFactoryBean(ainze)
(jbpm.cfg.xml中只需要注释掉hibernate的配置即可)
spring 配置--使用了SpringConfigurationFactoryBean(调整自ainze)的方式配置时 这个就是spring集成的最简配置
<!-- jbpm4配置 -->
<bean id="configuration" class="org.jbpm.spring.cfg.SpringConfigurationFactoryBean">
<property name="jbpmConfigurationLocation" value="jbpm.cfg.xml"></property>
<property name="sessionFactory" ref="sessionFactory" />
</bean>
测试代码--org.jbpm.spring.test.AbstractTransactionalSpringJbpmTestCase(author Andries Inze)
public class SimpleProcessTest extends AbstractTransactionalSpringJbpmTestCase{
@Override
protected String[] getConfigLocations() {
return new String[]{"classpath:test-context-hibernate.xml"};
}
public void test1(){
deployJpdlXmlString(
"<process name='p'>"
+ " <start>"
+ " <transition to='a'/>"
+ " </start>"
+ " <state name='a'>"
+ " <transition to='b'/>"
+ "</state>"
+ " <state name='b'>"
+ " <transition to='c'/>"
+ "</state>"
+ " <state name='c'/>"
+ "</process>");
Execution execution = executionService.startProcessInstanceByKey("p");
execution = executionService.findExecutionById(execution.getId());//.findExecution(execution.getId());
assertNotNull(execution);
assertEquals("a", execution.getActivityName());
//a流向b
execution = executionService.signalExecutionById(execution.getId());
assertNotNull(execution);
assertEquals("b", execution.getActivityName());
//b流向c
execution = executionService.signalExecutionById(execution.getId());
assertNotNull(execution);
assertEquals("c", execution.getActivityName());
//再次启动流程
execution = executionService.startProcessInstanceByKey("p");
//第三次启动流程
execution = executionService.startProcessInstanceByKey("p");
assertEquals(3,executionService.createProcessInstanceQuery().list().size());
}
}
- db.rar (2.2 KB)
- 描述: 修改后的mysql数据库脚本
- 下载次数: 378
- src.rar (2.1 MB)
- 描述: 合并后的代码
- 下载次数: 718
- lib.rar (7.9 MB)
- 描述: 编译jbpm4-spring依赖的jar包
- 下载次数: 1515
- 描述: 实际项目中的lib依赖
- 大小: 11.7 KB
分享到:
相关推荐
jbpm4 集成 spring 的试用代码 spring2.5 hibernate3.3 jbpm4 beta1 后的svn版本
spring与jbpm的集成包(符集成方法)
Spring与JBPM4的集成
struts+hibernate+spring+jbpm 智能工作流系统(包含构建数据库脚本和项目脚本),部署即可
Spring与JBoss JBPM工作流集成开发指南
如何将Spring与JBPM集成,需要的包
jbpm 4.3 与 spring 集成
jbpm4.3与spring整合的一个小文档
jqueryui1.8 springdb jbpm-email
jbpm与spring集成开发指南,描述了jbpm与spring开发过程。
Spring-Jbpm-JSF-Example.pdf
风中叶老师讲的JBPM4与Spring整合例子代码 JBPM4 Spring OA工作流系统
jbpm4.4 ibatis-spring 整合
SSH集成JBPM4.rar
jbpm5.4 spring mvc 集成开发 Jetty maven JTA 事务等配置!