【问题标题】:drools fusion CEP: How to get Properly entryPoint on 7.20. kieSession.getEntryPoint("My Entry Point") returns NULLdrools fusion CEP:如何在 7.20 上获得正确的入口点。 kieSession.getEntryPoint("我的入口点") 返回 NULL
【发布时间】:2019-09-28 17:10:00
【问题描述】:

初始化 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>

samplingStream 总是返回Null

【问题讨论】:

标签: drools entry-point drools-fusion


【解决方案1】:

验证您的规则文件是否正确。有时,可能会出现一些小错误,例如规则文件中的包名与 kmodule.xml 中提到的不匹配。您还可以在 pom.xml 中包含 kie Maven 插件。您的 drl 文件中的任何小错误都可能会将入口点获取为空。我遇到过同样的问题。 drl 文件中的包名与 kmodule.xml 中提到的不同。修复后,入口点不是 Null

【讨论】:

  • 这就是重点,太棒了。我在 google-groups 中也得到了很好的回复。仅当任何规则提及该入口点时,才会初始化入口点,否则,不会对其进行初始化。 groups.google.com/forum/…
猜你喜欢
  • 1970-01-01
  • 2012-10-20
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
  • 2018-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多