getKieClasspathContainer() 方法返回空值

getKieClasspathContainer() method returning null values

KieContainer kieContainer = KieServices.Factory.get().getKieClasspathContainer();

上一行中的方法returns一个容器,但是对象"kieContainer"有空值。它没有 "containerId" 并且 kProject 中的字段(kieContainer 中的字段)的值为 0。 resources里面有一个META-INF目录,里面有一个kmodule.xml。 kmodule.xml的内容是:

<kmodule xmlns="http://www.drools.org/xsd/kmodule">
  <kbase packages="com.ruleEngine.drools.section03.step1">
    <ksession name="StatelessPassportValidationStep1" type="stateless"/>
  </kbase>    
</kmodule>

调用getClasspathContainer()方法的正确方法是什么?

Debugger for working project

Debugger for my project

所以这是解决方案。 如果您尝试在添加 JBoss Drools 库的情况下在 IDEA 中生成一个项目,它会将 Drools_6_2_0.xml 下载到 .idea/libraries (它不是 maven repo 源)。再一次,如果您尝试在任何地方获取类路径容器,版本就会变得不匹配(您在 pom.xml 和 drools 6.2.0 中声明的版本)并且它会在 "kieContainer" 对象中带来空值。 只需删除 Drools_6_2_0.xml 文件即可解决问题。感谢 Roddy 的想法。