关于JBPM4.4与Spring整合

网络上针对相关的配置已经有很多说明,本文没有针对springmodules.jar包。


1. spring上下文的配置,!注意spring中要配置事务信息

<!-- jbpm.cfg.xml -->

<jbpm-configuration>

......
 
  <process-engine-context>
    <string name="spring.cfg" value="applicationContext.xml" />
  </process-engine-context>
</jbpm-configuration>

2. 关于自定义的identity配置,即权限管理的几个数据表,如下

在配置sessionFactory的时候,需要添加自定义identity.hbm.xml文件(自己配置,不再说明),在jbpm.cfg.xml中配置你自定义的IdentitySession的实现

<!-- jbpm.cfg.xml -->

<jbpm-configuration> ......  
  <!--<import resource="jbpm.identity.cfg.xml" />-->
   

  <transaction-context>
    <hibernate-session current="true" />
    <object class="your.IdentitySessionImpl"></object>
  </transaction-context> 

</jbpm-configuration>

3. 通过spring.xml配置好sessionFactory之后,jbpm.hibernate.cfg.xml文件可以不放到classpath下了,不过需要jbpm的特殊用途的时候,没有做验证。这里请配置的朋友们,自行研究一下。


4. 在spring的上下文XML配置文件内,配置好jbpm的提供的Service的Bean就可以了

<!-- JBPM 4.4 -->
<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper">
	<property name="jbpmCfg" value="jbpm.cfg.xml" />
</bean>
<bean id="processEngine" factory-bean="springHelper"
	factory-method="createProcessEngine" />

<bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService"></bean>
<bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService"></bean>
<bean id="executionService" factory-bean="processEngine" factory-method="getExecutionService"></bean>
<bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService"></bean>
<bean id="taskService" factory-bean="processEngine" factory-method="getTaskService"></bean>
<bean id="managementService" factory-bean="processEngine" factory-method="getManagementService"></bean>

5. 配置完毕后,我的程序还出现了一个很头疼的问题

开发环境:JDK1.6,Spring 3.0,JBPM 4.4,Hibernate 3.0,MySQL 5.0

问题描述:当我通过taskService.completeTask(taskId, translateName);,但是当任务为流程的最后一个结点的时候,出现了一个Execution外键的错误,不能删除当前的Execution这条记录。查看sql的执行日志是因为在删除Execution这条记录之前,有一条更新操作的sql没有执行。

问题原因:是因为hibernate的方言配置错误,应该采用 org.hibernate.dialect.MySQLInnoDBDialect ,而我使用的是org.hibernate.dialect.MySQLDialect

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值