drools - drools fusion CEP:如何在 7.20 上正确获取入口点。kieSession.getEntryPoint("我的入口点") 返回 NULL
问题描述
初始化 Drools 和 kiesession 时,一切正常。
kieSession.insert(Event) [this is a CEP app]
效果很好,但我无法初始化入口点。
EntryPoint ep = kieSession.getEntryPoint("My EntryPoint")
总是返回 NULL。
是否有必要以某种方式初始化入口点?我的结论是我的 kiSession 没有一个名为“MyEntryPoint”的入口点,并且 getEntryPoint() 没有创建它,所以它总是返回 NULL。
KieServices kieServices = KieServices.Factory.get();
// Load KieContainer from resources on classpath (i.e. kmodule.xml and rules).
KieContainer kieContainer = kieServices.getKieClasspathContainer();
KieBaseConfiguration config = kieServices.newKieBaseConfiguration();
config.setOption(EventProcessingOption.STREAM);
// Initializing KieSession.
LOGGER.info("Creating KieSession.");
kieSession = kieContainer.newKieSession("ksession-rules");
kieSession.addEventListener(new DebugEventListener());
// Collection<KiePackage> x = kieSession.getKieBase().getKiePackages();
DroolsActionHandler drlActionHandler = new DroolsActionHandler();
// kieSession.insert(drlActionHandler);
kieSession.setGlobal("drlActionHandler", drlActionHandler);
samplingStream = kieSession.getEntryPoint("StufaSampingStream");
<kmodule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.drools.org/xsd/kmodule">
<kbase name="rules" equalsBehavior="equality" eventProcessingMode="stream" default="true" packages="resources.rules.actuators">
<ksession name="ksession-rules" default="true" type="stateful" clockType="pseudo">
<!-- <fileLogger file="/var/log/sintechs/drools" threaded="true" interval="10"/> -->
</ksession>
</kbase>
</kmodule>
采样流总是返回Null
。
解决方案
验证您的规则文件是否正确。有时,可能会出现一些小错误,例如规则文件中的包名与 kmodule.xml 中提到的不匹配。您还可以在 pom.xml 中包含 kie Maven 插件。您的 drl 文件中的任何小错误都可能会将入口点获取为空。我遇到过同样的问题。drl 文件中的包名与 kmodule.xml 中提到的不同。修复后,入口点不是 Null
推荐阅读
- wordpress - 按作者添加到首页(静态页面)
- python - 我想检查一个数字是否是素数,但是下面的代码不起作用,当我输入 65 时它显示,这是一个素数
- mongodb - 将文档作为子推送并更新父文档中的时间戳
- amazon-web-services - 想要获取上传到 s3 的所有图像名称并在 Lambda 中处理它们
- python - 无法使用 Selenium 、 Python 和 ChromeDriver 访问元素
- html - 添加填充/边框会删除背景颜色
- vue.js - Vue Route 4 在 Vue 3 中刷新浏览器时无法读取链接
- java - 无法通过 ssl 连接到 mqtt 代理
- java - 使用 localstack 设置服务端口
- angular - 如何正确声明具有来自控制台的值的变量?