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

Drools通过kmodule.xml配置无法加载Template模板问题咨询

Drools drt模板加载失败的排查及配置修正方案

1. pom.xml基础依赖配置

首先确保已引入全部必要依赖,且所有drools、kie相关依赖的版本完全一致,版本不兼容会直接导致资源加载失败:

<dependencies>
    <!-- kie核心API -->
    <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-api</artifactId>
        <version>你的drools统一版本号</version>
    </dependency>
    <!-- drools核心引擎 -->
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-core</artifactId>
        <version>你的drools统一版本号</version>
    </dependency>
    <!-- drt模板支持 -->
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-templates</artifactId>
        <version>你的drools统一版本号</version>
    </dependency>
    <!-- xls格式决策表支持 -->
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-decisiontables</artifactId>
        <version>你的drools统一版本号</version>
    </dependency>
    <!-- 类路径kie资源扫描支持 -->
    <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-ci</artifactId>
        <version>你的drools统一版本号</version>
    </dependency>
</dependencies>

2. pom.xml资源过滤配置

如果maven开启了资源过滤,会篡改drt、xls这类文件的内容导致解析失败,需要单独关闭规则类文件的过滤:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/kmodule.xml</include>
                <include>**/*.drl</include>
                <include>**/*.drt</include>
                <include>**/*.xls</include>
                <include>**/*.xlsx</include>
            </includes>
            <!-- 规则类文件关闭过滤,避免内容被篡改 -->
            <filtering>false</filtering>
        </resource>
        <!-- 其他需要过滤的配置文件可单独新增resource节点配置 -->
    </resources>
</build>

3. kmodule.xml配置修正

3.1 路径匹配问题

你当前配置的kbase packages="KieRule"会默认扫描类路径下KieRule目录的资源,而你的drt、xls放在kiedrl目录下,路径不匹配会导致找不到资源,两种修正方案二选一:

  • 方案一:修改packages属性为通配符,扫描全类路径的规则资源:
<kbase packages="*">
    <ruleTemplate
            dtable="kiedrl/template-data.xls"
            template="kiedrl/validate-schedule-minor.drt"
            row="3" col="2" />
    <ksession name="templateRule" />
</kbase>
  • 方案二:保持packages为KieRule,将kiedrl目录整体移动到resources/KieRule路径下,同步修改ruleTemplate的路径为相对KieRule的路径。

3.2 放置位置校验

kmodule.xml必须放在src/main/resources/META-INF目录下,编译后对应出现在target/classes/META-INF路径,这是kie扫描配置的默认固定路径,放错位置会直接导致配置不生效。

4. 其他校验点

  • 确认项目编译后,target/classes目录下存在对应路径的validate-schedule-minor.drt和template-data.xls文件
  • 确认xls文件的表头字段和模板占位符完全对应,数据起始行列和配置的row="3" col="2"一致

内容的提问来源于stack exchange,提问作者Akhil kumar Amarneni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 21:15:00