rules - Drools 5从文件系统加载drl规则文件

标签 rules drools

我开发了一个自定义规则编辑器,能够创建 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/

相关文章:

regex - 十六进制代码验证在 Laravel 中不起作用

html - CSS 的 vertical-align 属性起作用的条件是什么?

ruby-on-rails - ruby on rails 的动态业务规则引擎

java - 如何在 drools 6.3.0 中从文件系统加载 drl 文件

java - 如何使 drools drl 文件在运行时访问更新的 jar

java - 如何创建从 UI 获取值并创建 drl 文件的规则模板?

c++ - 为什么更改引用指向的内容不会引发错误?

java - 我们如何在 Jess 规则中从终端选​​择默认值

c++ - 如何允许来 self 的应用程序 C++ 的请求 ICMPv4? Windows 8.1+

drools - 使用带有动态决策表的drools专家