2014-09-24 51 views
0

下面是代碼片段...jBPM的5.4任務完成,但接下來的任務不是創造

<bean id="systemEventListener" class="org.drools.SystemEventListenerFactory" factory-method="getSystemEventListener" /> 

    <bean id="internalTaskService" class="org.jbpm.task.service.TaskService" > 
      <constructor-arg index="0" ref="jbpmEMF"/> 
      <constructor-arg index="1" ref="systemEventListener" /> 
    </bean> 

LocalHTWorkItemHandler humanTaskHandler = new LocalHTWorkItemHandler(taskService, ksession, OnErrorAction.RETHROW); 
     humanTaskHandler.connect(); 
     ksession.getWorkItemManager().registerWorkItemHandler("Human Task", humanTaskHandler); 


public void completeTask(Long taskId, String userId, Object result) { 
    BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler(); 
    Map<String, Object> taskVars = (null != result) ? (HashMap<String, Object>) result : Collections.EMPTY_MAP; 
    taskService.completeWithResults(taskId, userId, taskVars);  

} 

我有兩個步驟的人工任務的過程。第一項任務完成後,我面臨奇怪的問題。

我可以用創建的ksession開始處理。啓動過程後首先在數據庫中創建任務。

一旦第一個任務完成。數據庫任務表表示它已完成,但未創建下一個/第二個人工任務。

可能是什麼問題?

回答

0

我通過在完整的方法中重新調用下面的代碼片段解決了這個問題。看起來ksession正在失去人工任務處理程序。

LocalHTWorkItemHandler humanTaskHandler = new LocalHTWorkItemHandler(taskService, ksession, OnErrorAction.RETHROW); 
     humanTaskHandler.connect(); 
     ksession.getWorkItemManager().registerWorkItemHandler("Human Task", humanTaskHandler);