2014-09-24 31 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);