Drools启动报Unable to build index of kmodule.xml

项目集成了Drools,启动的时候报了Unable to build index of kmodule.xml日志,但是没提示错误

等调用规则引擎的时候,出现了异常:

 Unknown Kiesession name:

 先说结论,项目中的jar包冲突导致xercesImpl包版本不对。正常这个包应该是2.9.1

结果用了2.6.2。

我这里用的方案是 在项目的启动main方法中加了一行代码

    public static void main(String[] args) {
        System.setProperty("javax.xml.parsers.DocumentBuilderFactory","com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
        SpringApplication.run(Application.class, args);
    }

排查过程:

首先是调整了日志 打出是哪个类输出的那行日志:

2022-11-15 20:00:44.959 [INFO ] org.drools.compiler.kie.builder.impl.ClasspathKieProject.notifyKieModuleFound[133 line] - Found kmodule: file:/C:/Users/Ding_haoqi/IdeaProjects/hiws/AntibioticsRecommend/target/classes/META-INF/kmodule.xml
2022-11-15 20:00:45.167 [ERROR] org.drools.compiler.kie.builder.impl.ClasspathKieProject.discoverKieModules[126 line] - Unable to build index of kmodule.xml url=file:/C:/Users/Ding_haoqi/IdeaProjects/hiws/AntibioticsRecommend/target/classes/META-INF/kmodule.xml

可以看到是org.drools.compiler.kie.builder.impl.ClasspathKieProject.discoverKieModules

进入这个类看到是101行打印的这条日志

但是日志没有打印全,var10的内容没有获取到,只能在93行的地方打个断点,然后debug启动

 启动执行到93行之后,继续执行就会跳入到catch中,可以看到错误原因:

orgapache xerces,axp.DocumentBuilderFactorylmpl,setFeature(ljava/lana/String?Z)V

这就更近了一步了:

报错java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/Stri_xue_tiger的博客-优快云博客_java.lang.abstractmethoderror

结合着这篇文章,试下在项目启动的时候,添加一行代码。

能正常运行了。

后续考虑如何调整maven解决这个问题。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值