jBPM4.3与Spring3.0的整合

第一种配置:src下提供jbpm.cfg.xml、jbpm.hibernate.cfg.xml、bean.xml
jbpm.cfg.xml
<jbpm-configuration>
      <import resource="jbpm.default.cfg.xml" />
      <import resource="jbpm.tx.spring.cfg.xml" />
      <import resource="jbpm.jpdl.cfg.xml" />
      <import resource="jbpm.bpmn.cfg.xml" />
      <import resource="jbpm.identity.cfg.xml" />
      <import resource="jbpm.businesscalendar.cfg.xml" />
      <import resource="jbpm.console.cfg.xml" />
      <!--  <import resource="jbpm.jobexecutor.cfg.xml" />  -->
      <process-engine-context>
            <string name="spring.cfg" value="beans.xml" /><!-- spring.cfg的默认值为"applicationContext.xml" -->
      </process-engine-context>
</jbpm-configuration>
jbpm.hibernate.cfg.xml
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost/jbpm</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">123</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
        <property name="hibernate.format_sql">true</property>
        <!--<property name="hibernate.current_session_context_class">thread</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>
bean.xml
<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="configLocation" value="classpath:jbpm.hibernate.cfg.xml" />
      <property name="dataSource" ref="dataSource" />
</bean> 
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
      <property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name="driverClassName" value="com.mysql.jdbc.Driver" />
      <property name="url" value="jdbc:mysql://localhost/jbpm" />
      <property name="username" value="root" />
      <property name="password" value="123" />
</bean>
需要说明:
  1. jbpm.cfg.xml文件中引入<import resource="jbpm.tx.spring.cfg.xml" />意思是把jBPM4.3的事务交由Spring来管理,这时你不能再引入<import resource="jbpm.tx.hibernatecfg.xml" />
  2. jbpm.cfg.xml文件中spring.cfg值是你配置sessionFactory的Spring文件,默认applicationContext.xml
  3. jbpm.hibernate.cfg.xml 文件中hibernate.dialect中设置为org.hibernate.dialect.MySQLInnoDBDialect,关于这一点网上其它帖子说的已经很清楚了。
  4. jbpm.hibernate.cfg.xml 文件中不要配置这个属性:<property name="hibernate.current_session_context_class">thread</property>笔者一开始就是因为配置了这个选项,导致集成的时候总是报出各种异常,弄的笔者糊里糊涂的。最后在jBPM的社区中看到了一个帖子才知道怎么回事:原来在Hibernate集成Spring的时候hibernate.current_session_context_class的值必须被设置为SpringSessionContext的相应值,而这 个工作,LocalSessionFactoryBean自动的就帮我们完成了,所以我们不必再额外配置了。
jBPM与Spring整合要达到的目的:把jBPM的事务交由Spring来管理,由于jBPM底层应用Hibernate来实现,所以整合的一个表征是把jBPM管理的SessionFactory交由Spring来注入。这样在SSH框架中我们操作的就是同一个SessionFactory对象了.
第二种配置:src下只提供jbpm.cfg.xml和bean.xml
jbpm.cfg.xml
<jbpm-configuration>
           <imp ort resource=" jbpm.default.cfg.xml" />
            <import resource="jbpm.tx.spring.cfg.xml" />
           <imp ort resource=" jbpm.jpdl.cfg.xml" />
           <imp ort resource=" jbpm.bpmn.cfg.xml" />
           <imp ort resource=" jbpm.identity.cfg.xml" />
           <imp ort resource=" jbpm.businesscalendar.cfg.xml" />
           <imp ort resource=" jbpm.console.cfg.xml" />
           <!--   <imp ort resource=" jbpm.jobexecutor.cfg.xml" />   -->
           <process-engine-context>
                      <string name=" spring.cfg" value=" beans.xml" /><!--  spring.cfg的默认值 为"applicationContext.xml" -->
           </process-engine-context>
</jbpm-configuration>
beans.xml
<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="hibernateProperties">
                      <props>
                                 <prop key=" hibernate.dialect"> org.hibernate.dialect.MySQLInnoDBDialect</prop>
                                 <prop key="hibernate.show_sql">true</prop>
                                 <prop key="hibernate.hbm2ddl.auto">update</prop>
                                  <!--<prop key="hibernate.current_session_context_class">thread</prop>-->
                      </props>
           </property>
           <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>
</bean> 
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionMana ger">
           <property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
           <property name="driverClassName" value="com.mysql.jdbc.Driver" />
           <property name="url" value="jdbc:mysql://localhost/jbpm" />
           <property name="username" value="root" />
           <property name="password" value="123" />
</bean>
需要说明:
  1. 第二种配置的目的就是把第一种配置中jbpm.hibernate.cfg.xml中配置放进bean.xml中。其它的说明同上。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值