You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过sbt assembly生成的Fat Jar运行Drools Kie项目报错求助

解决Drools KieSession找不到及XML支持缺失问题

问题根源

错误日志已经给出明确提示:

  • 缺少Drools XML支持模块,导致无法解析kmodule.xml文件
  • 由于kmodule.xml未被正确加载,KieContainer无法找到名为DroolDummyKS的KieSession,最终触发报错

修复步骤

1. 添加Drools XML支持依赖

在项目的build.sbt中补充drools-xml-support依赖,版本号需与你当前使用的Drools版本保持一致:

libraryDependencies += "org.drools" % "drools-xml-support" % "你的Drools版本号" % Runtime

示例(若使用7.74.0.Final版本):

libraryDependencies += "org.drools" % "drools-xml-support" % "7.74.0.Final" % Runtime

2. 校验kmodule.xml配置

确保src/main/resources/META-INF/kmodule.xml中正确定义了DroolDummyKS会话,示例配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://www.drools.org/xsd/kmodule">
    <kbase name="DroolDummyKB" packages="你的规则文件包路径">
        <ksession name="DroolDummyKS"/>
    </kbase>
</kmodule>

注意点:

  • packages需指向存放Drools规则文件(.drl)的实际包路径
  • KieSession名称需与代码中newKieSession("DroolDummyKS")的参数完全匹配(大小写敏感)

3. 确保sbt assembly打包完整依赖

检查assembly.sbt中的打包配置,避免误排除drools-xml-support或其依赖的XML解析类库(如jaxb-api、stax-api等),确保所有必要依赖都被打入Fat Jar。

验证操作

  1. 重新执行sbt assembly生成新的Fat Jar
  2. 运行Jar文件,确认日志中不再出现XML支持缺失的错误
  3. 检查KieSession是否能正常初始化

内容的提问来源于stack exchange,提问作者GSerum_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 04:35:29