gpt4 book ai didi

java - 从 jbpm6 WorkItemHandler 访问 KieSession

转载 作者:行者123 更新时间:2023-11-30 06:21:06 26 4
gpt4 key购买 nike

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

https://community.jboss.org/thread/221748

到目前为止一切都很好,因为我可以在 jbpm-console 中成功启动流程定义,并且它会启动我的自定义 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");
}

它“找不到默认的 KieSession”:

11:21:03,177 ERROR Exception: java.lang.RuntimeException: Cannot find a default KieSession
at org.drools.compiler.kie.builder.impl.KieContainerImpl.findKieSessionModel(KieContainerImpl.java:302) [drools-compiler-6.0.0.Final.jar:6.0.0.Final]
at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:295) [drools-compiler-6.0.0.Final.jar:6.0.0.Final]
at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:278) [drools-compiler-6.0.0.Final.jar:6.0.0.Final]

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

http://sourceforge.net/projects/jbpm/files/jBPM%206/jbpm-6.0.0.Final

谢谢!

最佳答案

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

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

关于java - 从 jbpm6 WorkItemHandler 访问 KieSession,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20862350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com