在jBpm 5.3中调用ksession.dispose后无法完成任务

时间:2012-10-29 14:07:21

标签: jbpm

  

您好,

     

在处理了创建拥有进程>任务的知识sesion后,我无法完成任务。我正在使用jBPM 5.3版本。请在下面找到stacktrace。

     

java.lang.IllegalStateException:非法方法调用。此会议先前已被处理。

      org.drools.reteoo.DisposedReteooWorkingMemory.
                                     getWorkItemManager(DisposedReteooWorkingMemory.java:386)

      org.drools.impl.StatefulKnowledgeSessionImpl.
                                     getWorkItemManager(StatefulKnowledgeSessionImpl.java:311)

     org.drools.command.runtime.process.CompleteWorkItemCommand.
                                     execute(CompleteWorkItemCommand.java:69)

1 个答案:

答案 0 :(得分:1)

那是因为在你处置()ksession之后你再也不能使用它了。如果您还有待处理任务,则有2个选项:

  1. 在完成所有任务(或者其中不再运行任何流程实例)之前,请不要释放会话。
  2. 如果您已经处理了会话,并且您正在使用持久会话,则可以在完成任务之前使用JPAKnowledgeService类从数据库重新加载它。
  3. 当在jBPM5中完成任务时,创建任务的会话必须处于活动状态(必须在内存中)且可用(未处理)。

    最诚挚的问候,