java - 如何在 Drools 中通过 Java API 操作引导决策表?

标签 java rest drools

我的项目中有一个要求,我需要从基于 Web 的自定义 UI 操作 Drools 引导决策表内容(只是数据而不是结构)。

我进行了很多搜索,但在 Drools 中找不到任何可以访问引导决策表的 Java 或 REST API。

如有任何帮助,我们将不胜感激。

最佳答案

我假设您正在谈论 kie-workbench 中的指导决策表。

据我所知,没有公共(public) API 可以操作引导决策表,但是您可以做另一件事。 kie-workbench 中的每个项目实际上都是保存在本地 git 存储库中的 Maven 项目。好消息是,您实际上可以制作 clone of that repository .

获得项目的本地克隆后,您可以将要修改的引导决策表定位为扩展名为 .gdst 的文件。

例如,这是 kie-workbench 附带的 uf-playground 示例项目的目录结构:

Tree structure of uf-playground project

在上面的屏幕截图中,您可以看到一个 Pricing Loans.gdst 文件。该文件的内容是一个 xml,其中包含“定价贷款”指导决策表的结构和数据。

这就是事情变得有趣的地方。如果您深入研究 kie-workbench 代码,我相信您会发现某种未记录且非常不稳定的 API 来处理这些 .gdst 文件。毕竟,kie-workbench 实际上是在创建和修改这些文件。这里的挑战是:

  1. 查找此 API
  2. 了解此 API

另一种解决方案,从技术角度来看可能不是最好的,但对于数据操作等简单的事情更容易实现,那就是解析和修改这些 .gdst 文件使用 XML 库。

完成更改后,您可以将它们推送回 kie-workbench,并且 GUI 用户可以使用它们。

当然,这两种建议的解决方案都不是理想的。使用不适合第三方使用且 future 肯定会改变的未记录的 API 听起来可能不是一个好主意。但是,手动解析 XML 文件(其语义可能在不同版本的 kie-workbench 上发生变化)也带来了一些挑战。

希望对你有帮助

关于java - 如何在 Drools 中通过 Java API 操作引导决策表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34810758/

相关文章:

java - 只允许某些类访问私有(private)变量的接口(interface)

来自 jar 的 Java 小程序

java - 在运行时将 netty-tcnative 添加到 Tomcat

php - 在这个 Symfony2 REST API 教程中,路由中定义的 'posts' 路径部分在哪里?

java - Spring rest json 发布空值

java - 如何在 IntelliJ 上调试 Drools 规则?

java - 实现 JNI 监听器

java - 不同 MIME 的多个 @GET - 如何使用普通的 HttpURLConnection() 来使用它

java - Drools Fusion规则语言: pedometer rule

java - 通过 tomcat 部署 Drools 失败