eclipse - 无法打开 drl 文件,因为它不存在

标签 eclipse drools mvel

我开始流口水了。我收到类路径错误。不确定,我在这里缺少什么。有什么提示吗?

主类

KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("sample.drl"),ResourceType.DRL);
KnowledgeBase kbase = kbuilder.newKnowledgeBase();
StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
Account account = new Account(200);
account.withdraw(100);
ksession.execute(account);

示例.drl

//创建于:2013 年 5 月 27 日

package com.rules

//list any import classes here.
import com.model


//declare any global variables here

rule "accountBalanceAtLeast"

    when
        //conditions
        $account : Account( balance < 100)
    then
        //actions
        System.out.println("Warning, Running out of money.");

end

控制台错误

enter image description here

项目设置 enter image description here

最佳答案

我建议您将 sample.drl 移动到 src/main/resources 然后使用:

kbuilder.add(ResourceFactory.newClassPathResource("sample.drl"),ResourceType.DRL);

如果您决定将 drl 文件放在 src/main/resources 中的不同文件夹中,比如 salesRulesvalidationRules,那么您应该使用:

kbuilder.add(ResourceFactory.newClassPathResource("salesRules/rules.drl"),ResourceType.DRL); kbuilder.add(ResourceFactory.newClassPathResource("validationRules/rules.drl"),ResourceType.DRL);

如果您仍想将 drl 文件放在 java 包中,请尝试以下操作:

kbuilder.add(ResourceFactory.newClassPathResource("com/rules/sample.drl"),ResourceType.DRL);

希望对你有帮助

关于eclipse - 无法打开 drl 文件,因为它不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16773984/

相关文章:

java - Hibernate/JPA 在 Eclipse 中运行良好,部署时抛出 SchemaManagementException

java - 方法(do 循环)中的扫描仪不接受大于/小于符号

java - 如何在 Drools 规则中声明列表

java - Spring Boot 和 Drools 集成

java - Braintree 与 Android Eclipse 项目的集成

java - 编译 : INSERT INTO table 时出现 Android SQLiteException "no such table"

java - 与 Velocity 和 Mvel 相比,Stringtemplate 性能较低

elasticsearch - 使用Elasticsearch自定义脚本字段检查参数数组中是否存在ID

java - 如何评估沙盒中的用户表达式