jbpm3.1升级到jpbm3.2.2过程中需要注意的几个问题

     前段时间由于项目需要,在jbpm3.1.3的基础上开发了一个简单的工作流系统.但由于jbpm3.1本身存在的一些bug,使得我们不得不修改包中的源码来适应开发的需要.所以昨天花了一天时间将jbpm由3.1升级到了3.2.2.在升级的过程中发现了一些需要注意的问题.

     首先是流程设计器建模方面的改变.jbpm3.1的gpd.xml文件中的<process-diagram>在jbpm3.2.2中变成了<root-container>,而<transition>也变成了<edge>.

      其次是hibernate配置文件的改变.在jbpm3.2.2的hibernate配置文件中新增了auto-import="false" 这个属性.由于变化,使得我们在利用jbpm的session进行hql查询时必须使用全路径类名.如下代码所示:

String hsql = new  String( " select t.node from org.jbpm.graph.exe.Token t where t.id= " + rootToken.getId());
List list
= jbpmContext.getSession().createQuery(hsql).list();

      这点需要特别注意,本人在升级时找这个原因找了很久.

      第三个需要注意的地方也可以算是jbpm3.2.2的一个bug.在hibernate.queries.hbm.xm文件中有如下一段代码:

   < query  name ="GraphSession.findTokensForProcessInNode" >
    
<![CDATA[
      select token
      from org.jbpm.graph.exe.Token token
      where token.processInstance.processDefinition.name = :processDefinitionName
        and node.name = :nodeName
    
]]>
  
</ query >

       个人认为其中的node.name应该是token.node.name,而且我很仔细得搜索了整个包,也没发现那里调用了这个query.不知道jbpm的开发人员出于什么阴暗心理把一个没用的错误query放在里面.结果导致每次调用jbpm都报错.个人建议可以直接把上面代码删掉.

       如果是简单的升级的话只要注意以上几个问题就可以了.据说jbpm3.2.2的流程文件也和3.1的有不同,但目前我还没有遇到,以后遇到会继续贴出来.   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值