#java #drools
#java #пускает слюни
Вопрос:
package com.sample;
import org.drools.core.SessionConfiguration;
import org.drools.core.base.RuleNameEqualsAgendaFilter;
import org.kie.api.KieServices;
import org.kie.api.builder.*;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
import org.kie.api.runtime.KieSessionConfiguration;
import java.io.StringReader;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Test {
public Test() {
}
public void fireRules(Object fact) throws Exception{
KieServices ks = KieServices.Factory.get();
KieRepository kr = ks.getRepository();
KieFileSystem kfs = ks.newKieFileSystem();
KieSessionConfiguration conf= SessionConfiguration.newInstance();
String path ="test.drl";
String drl = new String(Files.readAllBytes(Paths.get(path)));
kfs.write("../resources/com/sample/rules/simple.drl",ks.getResources().newReaderResource( new StringReader(drl) ));
KieBuilder kb = ks.newKieBuilder(kfs);
kb.buildAll();
if (kb.getResults().hasMessages(Message.Level.ERROR)) {
throw new RuntimeException("Build Errors:n" kb.getResults().toString());
}
KieContainer kContainer = ks.newKieContainer(kr.getDefaultReleaseId());
KieSession kSession = kContainer.newKieSession(conf);
kSession.insert(fact);
Test t = new Test();
kSession.insert(t);
System.out.println(kSession.fireAllRules());
return;
}
}
Вышеупомянутая функция не запускает правила
правило «Правило 01»
при оценке ( 1 ==1 ), затем System.out.println(«Правило 01 работает»); конец
Выше приведен файл правил.
Я хочу определить правила во время выполнения, но приведенный выше реализованный код не запускает правила. Есть ли какой-либо другой метод для создания и развертывания правил.
Заранее спасибо
Комментарии:
1. Итак, в чем ошибки?
2. Ошибок нет, просто правила не запускаются
3. Что происходит, когда вы запускаете свой IDE-отладчик и выполняете его пошагово?
4. не могу ничего выяснить в режиме отладки,
5. Хорошо, отладкой вы можете подтвердить, что он прочитал файл, как ожидалось, записал его в правильное местоположение, успешно создал правило и т.д.? Потому что у нас нет доступа к вашей системе и настройкам.