首页 > 解决方案 > getKieClasspathContainer() 方法返回空值

问题描述

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

上一行中的方法返回一个容器,但对象“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()方法的正确方法是什么?

工作项目的调试器

我的项目的调试器

标签: droolsrule-engine

解决方案


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


推荐阅读