- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 KieModule 创建 jar。请查看代码。
public static ReleaseId createKJarWithMultipleResources(String id, String[] resourceFiles) throws IOException {
KieServices ks = KieServices.Factory.get();
KieModuleModel kproj = ks.newKieModuleModel();
KieFileSystem kfs = ks.newKieFileSystem();
for (int i = 0; i < resourceFiles.length; i++) {
kfs.write("src/main/resources/" + id.replaceAll("\\.", "/")
+ "/" + i + ".drl", resourceFiles[i]);
}
KieBaseModel kBase1 = kproj.newKieBaseModel(id)
.setEqualsBehavior(EqualityBehaviorOption.EQUALITY)
.setEventProcessingMode(EventProcessingOption.STREAM);
KieSessionModel ksession1 = kBase1
.newKieSessionModel(id + ".KSession1")
.setType(KieSessionModel.KieSessionType.STATEFUL)
.setClockType(ClockTypeOption.get("pseudo"));
kfs.writeKModuleXML(kproj.toXML());
KieBuilder kieBuilder = ks.newKieBuilder(kfs).buildAll();
Results results = kieBuilder.getResults();
if( results.hasMessages( org.kie.api.builder.Message.Level.ERROR ) ){
System.out.println( results.getMessages() );
throw new IllegalStateException( "### errors ###" );
}
KieModule kieModule = kieBuilder.getKieModule();
return kieModule.getReleaseId();
}
但是当我尝试使用以下代码使用 jar 时:
KieContainer kieContainer =
kieServices.newKieContainer(createKJarWithMultipleResources("1",
new String[]
{new String(Files.readAllBytes(Paths.get("path to drl file")))}
));
KieSession kSession = kieContainer.newKieSession();
出现以下错误:
java.lang.RuntimeException: Cannot find a default KieSession
at org.drools.compiler.kie.builder.impl.KieContainerImpl.findKieSessionModel(KieContainerImpl.java:628)
at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:621)
at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:604)
at com.sample.DroolsTest.test2(DroolsTest.java:87)
我错过了什么吗?任何帮助将不胜感激。
最佳答案
问题解决了。我只需要更改代码中的以下几行:
KieSessionModel ksession1 = kBase1
.newKieSessionModel(id + ".KSession1")
.setType(KieSessionModel.KieSessionType.STATEFUL)
.setClockType(ClockTypeOption.get("pseudo"))
.setDefault(true);
注意 setDefault(true)
,原始代码中没有。
关于java - 找不到默认的 KieSession,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47528231/
在规则执行期间,我将在内存中“插入”新的事实对象,当规则触发后我需要读取该对象。在规则 session 之外我如何阅读这些事实? 我尝试从 session 外部(即在“fireAllRules()”方
我正在尝试使用 KieModule 创建 jar。请查看代码。 public static ReleaseId createKJarWithMultipleResources(String id, S
我正在使用 流口水 与 Spring Boot 2.3 和我已经实现了持久感知 KieSession ,其中 MySQL 用于存储 session 。我已经成功集成了默认EntityManagerFa
我正在使用 Drools,并且将相当多的全局变量插入到 KieSession 中。 kieSession.setGlobal("foo", foo); kieSession.setGlobal("ba
我将 Drools 与 Eclipse 和 Maven 结合使用,用于执行多对多模式匹配的应用程序。我想使用 KieScanner 自动更新正在运行的 KieSession,而无需重新启动应用程序。但
当 StatelessKieSession 内部处理在并发执行环境中时,我们面临 NullPointerExceptions。 java.lang.NullPointerException at or
我正在尝试将我们的项目从 Drools 6.5.0.CR2 切换到 7.7.0.Final。 (不要问我是谁想到在生产环境中使用CR版本的) 我在更改依赖项时没有遇到任何问题(没有编译错误),但我现在
我尝试在从 KieBase 中删除规则后重新创建 KieSession,但删除的规则仍在触发。 我创建了一个 KieBase 并使用以下代码删除了一条规则: KieServices servi
我正在使用带有自定义工作项处理程序的 jbpm-console (6.0.0.Final)。我在我的 jbpm-console WAR 中嵌入了一个自定义工作项处理程序 JAR,如此处的第 7 篇文章
到目前为止,我无法找出向 Drools 6.0.0 中正在运行的 KieSession 添加规则并仍将我的事实保留在 KieSession 中的最佳方法(即以最小的开销)。在 Drools 5 中,当
我正在使用 drools 和 Spark Streaming。我想在整个工作过程中在 Spark 流上下文中维护 KieSession。 Spark 中每个工作节点的每个 session 。我知道 k
我正在尝试将 drools6.0 改编为现有代码库(它是 eclipse 下的 maven 项目)。我以前不需要学习 drools 或 maven(尽管它们是我之前项目的一部分),足以说我迷失在我想做
我是一名优秀的程序员,十分优秀!