drools - 在 Drools 中加载外部文件
问题描述
我是 drools 的新手,我已经使用 kmodule.xml 文件和/rules文件夹下的规则文件设置了我的应用程序。我将应用程序打包为 jar,一切正常。
我的用例虽然涉及在运行时生成新规则,所以生成了新文件 .gdst。所以我的问题是如何让我的 .jar 文件使用这些文件而不使用它们位于资源文件夹中,但在运行时从外部文件夹加载它们?谢谢
解决方案
您可以使用 Kie API 以编程方式定义 KieContainer - 这包括添加外部加载的规则。在高层次上,它可能如下所示:
KieFileSystem kfs = ...
kfs.write( "src/main/resources/KBase1/ruleSet1.drl", stringContainingAValidDRL )
.write( "src/main/resources/dtable.xls",
kieServices.getResources().newInputStreamResource( dtableFileStream ) );
请参阅包含说明此端到端单元测试的此类: https ://github.com/kiegroup/drools/blob/9e335b0ff3b04d30316a9b75fba090784d6967d7/drools-mvel/src/test/java/org/drools/mvel/compiler/builder /KieBuilderTest.java
推荐阅读
- vaadin - 如何使消息/标签关闭
- flutter - 同一列内的水平 ListView.builder 和垂直 ListView.builder
- c# - 是否可以从 Coroutine 方法返回 UnityWebRequest 的结果?
- sql - 如何将“ALTER table [...] ADD column”之类的更改记录到我的 PostgreSQL 表中?
- node.js - 角度2:成功登录后无法重定向到主页
- angular - 当我将 rxjs 从 6.3.3 更新到 6.4.0 时,出现错误:ERROR TypeError: You provide an invalid object where a stream is expected
- scala - 如何在 Spark 应用程序中进行有效的日志记录
- javascript - ThreeJS 我的 GLTF 加载速度在主机服务器上太慢了?
- linux - 如何设置 GNU 缩进输入
- slim-4 - 如何在 Slim Framework 4 中获取已注册的路由