流口水融合CEP:如何在7.20上正确获得entryPoint。 kieSession.getEntryPoint(“ My Entry Point”)返回NULL

时间:2019-05-10 19:10:36

标签: drools entry-point drools-fusion

初始化Drools和kiesession时,一切工作正常。

kieSession.insert(Event) [this is a CEP app]可以很好地工作,但是我无法初始化EntryPoint。

EntryPoint ep = kieSession.getEntryPoint("My EntryPoint")始终返回NULL。

是否需要以某种方式初始化入口点?我的结论是,我的kiSession没有名为“ MyEntryPoint”的EntryPoint,而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

1 个答案:

答案 0 :(得分:0)

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