пускает слюни fusion CEP: Как правильно получить entryPoint на 7.20. kieSession.getEntryPoint(Моя точка входа) возвращает NULL

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

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>

sampleStream всегда возвращает Null.


person Mario Caseiro    schedule 10.05.2019    source источник
comment
Кажется, где-то в документации упоминалось (по крайней мере, я ее читал), что все точки входа инициализируются правилами. сказал Иван Костюк на (mail.google.com/mail/u/1 /#входящие/)   -  person Mario Caseiro    schedule 26.05.2019


Ответы (1)


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

person Anuradha    schedule 24.05.2019
comment
В том-то и дело, молодец. У меня также есть хороший ответ в группах google. Точка входа инициализируется только в том случае, если какое-либо правило упоминает эту точку входа, в противном случае на ней нет инициализации. groups.google.com/forum/ - person Mario Caseiro; 26.05.2019