Roy-Spring手记-3-集成jBPM3.1.2

一、修改applicationContext.xml配置
 
 
1.修改sessionFactory
 
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource">
   <ref local="dataSource" />
  </property>
   <property name="mappingJarLocations">
   <list>
    <value>WEB-INF/lib/jbpm-3.0.1.jar</value>
    <!--<value>WEB-INF/lib/jbpm-identity-3.0.1.jar</value>-->
   </list>
  </property>
  
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>
   </props>
  </property>
 </bean>

  注意:
  (1)由于我使用的JBPM是以JAR的形式存在于CLASSPATH中的,所以当加载其中的HIBERNATE实体描述文件的时候需要使用下面的写法:
    <value>WEB-INF/lib/jbpm-3.0.1.jar</value>

  (2)为了使HIBERNATE3查询的时候使用正确的语法需要指明查询工厂类,如果不指定回出现ClassNotFoundException: org.hibernate.hql.ast.HqlToken  的错误!

    <prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>
 
 
2.加入以下配置
 
 <!-- reading jBPM process definitions -->
 <bean id="appWorkflow"
  class="org.springmodules.workflow.jbpm31.definition.ProcessDefinitionFactoryBean">
  <property name="definitionLocation"
   value="/WEB-INF/processdefinition.xml" />
 </bean>

 <!-- jBPM configuration-->
 <bean id="jbpmConfiguration"
  class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
  <property name="sessionFactory" ref="sessionFactory" />
  <property name="configuration" value="/WEB-INF/jbpm.cfg.xml" />
  <property name="processDefinitions">
   <list>
    <ref local="appWorkflow" />
   </list>
  </property>
  <property name="createSchema" value="true" />
 </bean>
 
 <!-- jBPM template -->
 <bean id="jbpmTemplate"
  class="org.springmodules.workflow.jbpm31.JbpmTemplate">
  <constructor-arg index="0" ref="jbpmConfiguration" />
  <constructor-arg index="1" ref="appWorkflow" />
 </bean>
 
3.更新包引用:ehcache-1.2.4
 
Spring2.0和jbpm3.1.2都使用了ehcache做为二级缓存。默认情况下Spring2.0引用ehcache-1.2,jbpm3.1.2引用ehcache-1.1。
两个ehcache不能同时存在。
 
报错:CacheManager.init方法不更实例化
 
最后下载了ehcache-1.2.4版本加入引用,成功运行。
 
 
4.更改jbpm.cfg.xml配置
 
针对jbpm3.1.2,在按照如上所示配置完成后,启动过程log里会抱错,说没有配置String类型变量"default.jbpm.context",经过对源码debug,可以发现,在jbpm3.1.2中的jbpmConfiguration初始化jbpmContext的过程中,已经配置了默认的jbpmContext名称为default.jbpm.context,并存在相应的变量中,因此在配置文件jbpm.cfg.xml中我们应该为其中的jbpm-context指定name属性。
 
在jbpm.cfg.xml里加入这个一句

<jbpm-context name="default.jbpm.context"/>

这样就完成了配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值