2012-10-29 21 views
1

喜調用ksession.dispose後完成任務,無法在jBPM的5.3

我無法處置的task.I的這創造擁有的進程知識使sesion>正在使用的jBPM 5.3後完成任務version.Please找到下面的堆棧跟蹤。

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

那是因爲你處理後()一ksession你不能使用它了。如果您還有待完成的任務,您有兩個選項:

  1. 不要在會話完成之前處理會話(或者沒有更多的流程實例在其中運行)。
  2. 如果已經處理會話,並且正在使用持久會話,則可以在完成任務之前使用JPAKnowledgeService類從數據庫重新加載該會話。

當任務在jBPM5中完成時,創建該任務的會話必須是活動的(必須在內存中)並且可用(不處理)。

最好的問候,

+0

感謝您的建議Esteban.I嘗試選項2,它的工作。 – sriram