Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从jbpm6 WorkItemHandler访问会话_Java_Drools_Jbpm_Business Process Management_Kie - Fatal编程技术网

Java 从jbpm6 WorkItemHandler访问会话

Java 从jbpm6 WorkItemHandler访问会话,java,drools,jbpm,business-process-management,kie,Java,Drools,Jbpm,Business Process Management,Kie,我正在使用带有自定义工作项处理程序的jbpm控制台(6.0.0.Final)。我在jbpm控制台WAR中嵌入了一个自定义工作项处理程序JAR,如第7篇文章所述: 到目前为止,这一切都很好,因为我可以在jbpm控制台中成功地启动一个进程定义,并启动我的自定义WorkItemHandler代码 但是,在我的WorkItemHandler中,我想在ProcessInstance上设置一些变量。当我尝试这样的事情时: public void executeWorkItem(WorkItem workI

我正在使用带有自定义工作项处理程序的jbpm控制台(6.0.0.Final)。我在jbpm控制台WAR中嵌入了一个自定义工作项处理程序JAR,如第7篇文章所述:

到目前为止,这一切都很好,因为我可以在jbpm控制台中成功地启动一个进程定义,并启动我的自定义WorkItemHandler代码

但是,在我的WorkItemHandler中,我想在ProcessInstance上设置一些变量。当我尝试这样的事情时:

public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
    KieServices ks = KieServices.Factory.get();
    KieContainer kContainer = ks.getKieClasspathContainer();

    // BLOWS UP HERE
    //
    KieSession session = kContainer.newKieSession();

    WorkflowProcessInstance processInstance = 
      session.getProcessInstance(workItem.getProcessInstanceId());

    // SET VARIABLE
    processInstance.setVariable("foo", "bar");
}
它“找不到默认会话”:

我错过了什么?我需要设置一些额外的设置吗?我只是在这里使用开箱即用(自定义工作项处理程序嵌入jar除外)“demo”安装:


谢谢

资源文件夹中是否有kmodule.xml?如果不是,也许这就是问题所在。您可以有一个非常简单的xml文件,如:

<kmodule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://jboss.org/kie/6.0.0/kmodule">
</kmodule>

将会话作为构造函数参数传递到workItemHandler中。 然后,workItemHandler可以使用您的会话

当需要时,您可以在适当的会话中注册workItemHandler,而不必只注册一次

或者在开始时传递rulesManager并根据需要生成一个会话

<kmodule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://jboss.org/kie/6.0.0/kmodule">
</kmodule>