只有一条规则被触发无法弄清楚为什么没有执行所有在 drl 文件中声明的规则
only one rule fired can't able to figure out why not all rule executed which declared in drl file
我是流口水新手。我使用的是 drool 7。这是我在 drl 文件中编写的规则。
rule "initListFact" dialect "java" when not List() then insert( new ArrayList() ); end
rule "TermAndConditionRequest_0_NOTNULL" when obj : TermAndConditionRequest(candidateId == null); result:ConstraintValidationResult();
在 java 中,我创建了 kieSession 对象,然后插入 class 对象并触发规则:-
kieSession.insert(classObject);
kieSession.insert(constraintValidationResult);
List error = new ArrayList<String>();
kieSession.setGlobal("errorList", error);
kieSession.addEventListener(new DroolEventListener());
int i = kieSession.fireAllRules();
我想执行我在 .drl 文件中声明的所有规则,但只有 "initListFact" 规则只会被执行。请帮我解决这个问题。
我找到了解决方案,为什么它不能与 spring-boot 一起使用并且不会触发任何规则,因为 Drools 不能与 spring-boot-devtools 一起工作。
如果添加 pom.xml 以下内容,Drools 将不会触发任何规则。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency>
如果您将其注释掉,那么规则将在 Drools 中正确触发。
请关注link获取更多信息:https://issues.jboss.org/browse/DROOLS-1540
谢谢
我是流口水新手。我使用的是 drool 7。这是我在 drl 文件中编写的规则。
rule "initListFact" dialect "java" when not List() then insert( new ArrayList() ); end
rule "TermAndConditionRequest_0_NOTNULL" when obj : TermAndConditionRequest(candidateId == null); result:ConstraintValidationResult();
在 java 中,我创建了 kieSession 对象,然后插入 class 对象并触发规则:-
kieSession.insert(classObject);
kieSession.insert(constraintValidationResult);
List error = new ArrayList<String>();
kieSession.setGlobal("errorList", error);
kieSession.addEventListener(new DroolEventListener());
int i = kieSession.fireAllRules();
我想执行我在 .drl 文件中声明的所有规则,但只有 "initListFact" 规则只会被执行。请帮我解决这个问题。
我找到了解决方案,为什么它不能与 spring-boot 一起使用并且不会触发任何规则,因为 Drools 不能与 spring-boot-devtools 一起工作。
如果添加 pom.xml 以下内容,Drools 将不会触发任何规则。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency>
如果您将其注释掉,那么规则将在 Drools 中正确触发。
请关注link获取更多信息:https://issues.jboss.org/browse/DROOLS-1540
谢谢