【发布时间】:2019-03-29 11:25:21
【问题描述】:
我已经能够成功地从目录src/main/rules 中读取规则,并且我的 drools 项目运行良好。
但是,当我想从不同的目录读取规则集时,就会出现我的问题,例如,我有第二个具有相同规则的 drools 项目。尝试从/home/user/Documents/workspace/OtherProject/src/main/ruls/Ruleset.drl 读取规则会导致错误
"/home/user/Documents/workspace/DroolsProject/src/main/rules/Ruleset.drl" cannot be opened because it does not exist
我已多次检查该文件是否存在,甚至将pwd 的输出复制并粘贴到我的PATH 变量(在drools 项目中),但没有成功。
private static KnowledgeBase readKnowledgeBase(String ruleSet) throws Exception {
KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
builder.add(
ResourceFactory.newClassPathResource(
"/home/user/Documents/workspace/DroolsProject/src/main/rules/Ruleset.drl"),
ResourceType.DRL);
KnowledgeBuilderErrors errors = builder.getErrors();
if (errors.size() > 0) {
for (KnowledgeBuilderError error : errors)
System.err.println(error);
throw new IllegalArgumentException("Could not parse knowledge :(");
}
KnowledgeBase base = KnowledgeBaseFactory.newKnowledgeBase();
base.addKnowledgePackages(builder.getKnowledgePackages());
return base;
}
这是我用来加载规则的方法。
最终目标是将规则文件上传到服务器(可能是/tmp)并使用所述规则文件运行项目。
【问题讨论】:
标签: java eclipse file-io drools