drools fusion CEP: Как правильно получить entryPoint на 7.20. kieSession.getEntryPoint («Моя точка входа») возвращает NULL - PullRequest
0 голосов
/ 10 мая 2019

При инициализации Drools и kiesession все работает отлично.

kieSession.insert(Event) [this is a CEP app] работает хорошо, но я не могу инициализировать EntryPoint.

EntryPoint ep = kieSession.getEntryPoint("My EntryPoint") всегда возвращает NULL.

Нужно ли как-то инициализировать точку входа?Я пришел к выводу, что моя kiSession не имеет EntryPoint с именем «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.

1 Ответ

0 голосов
/ 24 мая 2019

Убедитесь, что ваш файл правил правильный.Иногда могут быть небольшие ошибки, такие как имя пакета в файле правил не совпадает с тем, что упоминается в kmodule.xml.Вы также можете включить плагин kie Maven в свой pom.xml.Любая небольшая ошибка в вашем файле drl может привести к тому, что точка входа будет нулевой.Я была такая же проблема.Имя пакета в файле drl отличалось от указанного в kmodule.xml.После исправления точка входа не была нулевой

...