JBPM调用CompleteTask异常以及在JBPM中使用Hibernate Session的方法

19 篇文章 0 订阅
2 篇文章 0 订阅
1、JBPM调用CompleteTask异常:
[b]void completeTask(java.lang.String taskId) [/b]
Deletes this task, marks the related history task as completed.
[b]void completeTask(java.lang.String taskId, java.util.Map<java.lang.String,?> variables) [/b]
Deletes this task and marks the related history task as completed.
[b]void completeTask(java.lang.String taskId, java.lang.String outcome)[/b]
Deletes this task, marks the related history task as completed with the specified outcome.
[b]void completeTask(java.lang.String taskId, java.lang.String outcome, java.util.Map<java.lang.String,?> variables)[/b]
Deletes this task, marks the related history task as completed with the specified outcome.
JBPM中completeTask有以上四种重载完成节点任务的方法,初学时调用该方法出错:No unnamed transitions were found for the task “**”;后来总结发现,当task中只有一个transition,而且没有name属性,则可以调用completeTask(java.lang.String taskId)和completeTask(java.lang.String taskId, java.util.Map<java.lang.String,?> variables)这两个方法,当有多个transition或者transition有name属性的时候调用完成任务的方法时则需要指定转向,即java.lang.String outcome参数,就是调用后面两个重载的方法,否则就会报上面这个异常;

2、JBPM中使用Hibernate Session的方法:
学习JBPM时,想将数据保存到自己的表中,不过不想使用jdbc,使用hibernate又不想独立再重新用,所以就考虑想用JBPM中的hibernate session,看到源码中sevice中都有session,不过没找到何处赋值的,后面还得多研究下,不过看到有用EnvironmentImpl.getCurrent().get(XXX.class)的方法,而且有个DbSession的类中有hibernate的session变量,所以尝试EnvironmentImpl.getCurrent().get(DbSession.class)获取,不过报错,EnvironmentImpl.getCurrent()是空值,之后发现下面的方法:

EnvironmentImpl environment = ((EnvironmentFactory) processEngine).openEnvironment(); //获取JBPM的环境
DbSession session = environment.get(DbSession.class);

此处注意需要自己处理事务,这个地方被困扰了好久,显示操作但是没有数据,需要手动的去控制事务。

有了这个environment之后同样可以用这个方法也可以获得其他的一些类的实例,这样可以在在JBPM中可以通过environment获得各种服务和接口。
如:
IdentitySession identitySession = environment.get(IdentitySession.class);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值