歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

JBPM與Spring整合

Spring與Jbpm的整合

1,整合的必要性:
流程中對業務數據操作與流程操作需要在同一個事務中實現

例如:請假流程——請假人提交請假申請,流程跳轉到下一個節點任務(JBPM數據);記錄請假人信息到用戶表(業務數據)

一個操作,可能會同時涉及到JBPM數據和業務數據,如果用兩個事務,可能會導致業務與流程的數據不一致。

2,整合圖

整合原理:

(1)使用Spring容器IOC提供的BeanFactory功能初始化JBPM的configuration。

(2)使業務數據與JBPM公用sessionFactory。

3,Spring與Jbpm整合的核心:
 (1)由Spring容器產生processEngine

 (2)Jbpm的事務交給spring處理

4,整合步驟
  * 導入jbpm的jar包

  * 刪除db和hibernate的jar包

  * 在config下創建一個配置文件

        config/jbpm

                jbpm.cfg.xml

                jbpm.hibernate.cfg.xml

  * jbpm.cfg.xml文件中

<import resource="jbpm.tx.hibernate.cfg.xml" />

改為

 <import resource="jbpm.tx.spring.cfg.xml" />

統一由spring處理事務,由右邊的配置可以看出是通過創建新的session從而開啟事務的

* jbpm.hibernate.cfg.xml文件中

* 數據庫的連接配置

<propertyname="current_session_context_class">thread</property>

這行配置不能寫,不能從當前線程中獲取session

* OA項目本身的表的映射文件

* jbpm的表的映射文件

* spring的配置文件

* hibernate配置文件的路徑修改

 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
      <property name="configLocation">
          <value>classpath:jbpm/jbpm.hibernate.cfg.xml</value>
      </property>
 </bean>

* 讓spring產生processEngine

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

注意jbpm.cfg.xml配置文件的路徑

5,總結:

JBPM與SSH整合——讓Spring管理生成ProcessEngine,讓Hibernate生成JBPM實體數據庫表。

JBPM4.4部署在Tomcat6以上的版本jar包沖突 http://www.linuxidc.com/Linux/2014-04/99476.htm

JBPM工作流開發指南 PDF http://www.linuxidc.com/Linux/2014-06/103823.htm

JBPM流程實例(PV)Process Variables http://www.linuxidc.com/Linux/2014-06/102859.htm

JBPM流程實例(PI)Process Instance http://www.linuxidc.com/Linux/2014-06/102858.htm

JBPM流程部署校驗 http://www.linuxidc.com/Linux/2014-06/102860.htm

JBPM 的詳細介紹:請點這裡
JBPM 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved