只有一个规则触发无法弄清楚为什么不是所有在DRL文件中声明的规则都执行



我是流口水的新手。我用了口水 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对象,然后插入类对象并触发规则:-

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 中正确触发。

请点击链接了解更多信息:https://issues.jboss.org/browse/DROOLS-1540

谢谢

相关内容

最新更新