我正在尝试使用OpenRules和Java,我想将所有规则存储在数据库中。如果我正确理解documentation,我需要有一个“Main.xls”来存储环境设置。现在的问题是:有没有办法完全绕过这个物理.xls文件? 最好的情况是,如果我可以调用类似
的东西defineOpenRulesDatabase();
OpenRulesEngine engine = new OpenRulesEngine("db:myFile.xls");
engine.run();
其中方法defineOpenRulesDatabase()定义了文档中提到的db.properties文件中定义的所有设置。
对此有什么想法吗?
答案 0 :(得分:0)
是。 According to the documentation,您可以传入Java支持的任何URL(即URL.openStream()
将返回一些有用的东西)。
因此,您只需在应用程序中嵌入Jetty web server,创建一个返回文件的servlet,然后使用servlet的URL调用OpenRulesEngine()
。
或者您可以从数据库下载文件并使用File.createTempFile()
创建临时文件来设置规则引擎。
或者您可以针对该项目提交错误并要求另一个允许您传入InputStream
的构造函数。
[编辑]我想你已经看过this document,它解释了如何将规则放入数据库。从我看到的情况来看,至少在类路径中没有现有的Main.xls文件就无法创建规则引擎。
但该文件不必包含太多内容:
rules / main / Main.xls规则引擎的主要文件。它只包含Environment表
因此,您只需将静态文件放在类路径中,然后从DB加载所有规则。