我开始流口水了。我收到类路径错误。不确定,我在这里缺少什么。有什么提示吗?
主类
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
控制台错误
项目设置
最佳答案
我建议您将 sample.drl
移动到 src/main/resources
然后使用:
kbuilder.add(ResourceFactory.newClassPathResource("sample.drl"),ResourceType.DRL);
如果您决定将 drl 文件放在 src/main/resources
中的不同文件夹中,比如 salesRules
和 validationRules
,那么您应该使用:
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/