java - 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 中运行
解决方案
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-api
jar 中可用,它替换了drools-api
jar 并充当已弃用的 API 和新的 kie api 之间的桥梁。在 Drools 7 中,这变为KieBase
.
版本 | 班级 | 罐 |
---|---|---|
流口水 5 | 规则库 | 流口水API |
流口水 6 | 知识库 | 知识API |
流口水 7 | 基贝 | 基阿皮 |
您需要进入并重构您的代码以不依赖已弃用/删除的类,并为 Drools 6 中引入的新工作流更新您的配置、代码和规则。