Есть ли простой способ выполнить все. drl файлы в каталоге - PullRequest
1 голос
/ 18 июня 2019

Я использую Kie, я хочу выполнить все файлы .drl в каталоге.Есть ли более простой способ ?? ...

Структура папки:

1. /drools/rules/rule_1.drl
2. /drools/rules/rule_2.drl
3. /drools/rules/rule_3.drl
4. /drools/rules/rule_4.drl

ResourceFactory.newFileResource(drlFile))

Я использовал приведенный выше код для загрузки одного файла в kieSession.

Ожидается: есть ли простой способ загрузить все файлы в каталоге в kieSession

1 Ответ

1 голос
/ 19 июня 2019

Вам нужен файл kmodule.xml в папке ресурсов, например:

resources -> META-INF -> kmodule.xml

Очень важно иметь эту структуру. В папке META-INF также должен быть следующий каталог:

resources -> META-INF -> maven -> pom.properties

В противном случае работа с файлом kmodule.xml не работает.

Ваше определение файла kmodule.xml будет примерно таким:

<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
    <kbase name="mypackage" packages="drools.rules">
        <ksession name="mysession" type="stateless"/>
    </kbase>
</kmodule>

Если вы используете пакеты вместо файлов, контейнер может быть создан следующим образом:

this.kieContainer = this.kieServices.getKieClasspathContainer();

После этого вы сможете, например, создать сеанс без сохранения состояния:

StatelessKieSession statelessKieSession = kieContainer.newStatelessKieSession("mysession"); 

Если по какой-либо причине вам нужен kieBase, вы используете:

kieBase = statelessKieSession.getKieBase();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...