我开发了一个自定义规则编辑器,能够创建 drl 文件并将它们保存在给定目录下的文件系统中。 (例如 c:\savedRules\rule.drl)。 问题是,一旦规则被保存,我需要用 drools 引擎运行它。 在我的类里面,我尝试以这种方式加载规则:
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("c:\savedRules\rule.drl"), ResourceType.DRL);
但是它不起作用。异常(exception)是“rule.drl 无法打开,因为它不存在”,但它实际上存在......
我做错了什么?还有另一种方法可以直接从文件系统加载规则吗?
最佳答案
尝试使用,
FileInputStream fis = new FileInputStream(drlFile);
kbuilder.add(ResourceFactory.newInputStreamResource(fis), ResourceType.DRL);
谢谢。
关于rules - Drools 5从文件系统加载drl规则文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4991595/