首页 > 解决方案 > Drools 错误 - org.drools.RuleBase

问题描述

嗨,我正在将我的项目从 java1.6 迁移到 Java1.8 。我已将我的 Drools jar 从 5.2.1.Final 更新为 6.5.0.Final 。现在我在课堂上遇到错误-

              org.drools.RuleBase
              org.drools.RuleBaseFactory

java代码错误-无法解析导入org.drools.RuleBase--代码错误无法解析导入org.drools.RuleBaseFactory----代码错误

我必须做哪些改变才能在 Java1.8 中运行

标签: javadrools

解决方案


Drools 6 是 Drools 5 的重大变化。进行了大规模重组,一些文件不复存在。部分原因是 Drools 使用的算法发生了变化(rete vs phreak)。

归根结底,Drools 6并不是Drools 5 的直接替代品。你不能只是重新版本化 jar 并期望它们能够工作——某些属于 Drools 5 的 jar 不能甚至存在于 Drools 6 中!在大多数情况下,您可以在主要版本中进行直接替换(例如,您可以将 5.x 换成 5.y. 或 6.x 换成 6.y)直到 7.44(ish)。但是主要版本的变化有重大的变化,7 大于 44 的次要版本也是如此。

org.drools.RuleBase作为一个具体的例子, Drools 6 中不再存在该类。如果您下载 drools-core jar,打开它并进行探索,您会发现org.drools.

自从我使用 Drools 5 已经很长时间了,但如果RuleBase是我认为的类,那么 Drools 6 特定的替代品是KnowledgeBase. 该类在knowledge-apijar 中可用,它替换了drools-apijar 并充当已弃用的 API 和新的 kie api 之间的桥梁。在 Drools 7 中,这变为KieBase.

版本 班级
流口水 5 规则库 流口水API
流口水 6 知识库 知识API
流口水 7 基贝 基阿皮

您需要进入并重构您的代码以不依赖已弃用/删除的类,并为 Drools 6 中引入的新工作流更新您的配置、代码和规则。


推荐阅读