如何调试drools决策表

如何调试drools决策表,drools,Drools,有人能帮我调试Drools中的决策表吗。对于我们的项目,我们正在创建一个包含1000多条规则的决策表。当规则中出现错误时,谁的电子表格不起作用,也没有显示准确的错误位置。Drools:version 7.15.0.Final 我目前采用两种方法调试决策表: 编译阶段 在我的例子中,我必须序列化决策表以节省时间–通常它们会转换为.drl文件,然后进行评估。我跳过这一行,直接编译它们,获取知识库并序列化它们。我的应用程序使用这些序列化的知识库 有时我的决策表无法编译 我通过生成.drl文件来调试它们

有人能帮我调试Drools中的决策表吗。对于我们的项目,我们正在创建一个包含1000多条规则的决策表。当规则中出现错误时,谁的电子表格不起作用,也没有显示准确的错误位置。

Drools:version 7.15.0.Final

我目前采用两种方法调试决策表:

编译阶段 在我的例子中,我必须序列化决策表以节省时间–通常它们会转换为
.drl
文件,然后进行评估。我跳过这一行,直接编译它们,获取知识库并序列化它们。我的应用程序使用这些序列化的知识库

有时我的决策表无法编译

我通过生成
.drl
文件来调试它们。drl解析器生成的错误大部分可以从生成的
.drl
文件中识别出来

运行阶段 有时,即使我的决策表已成功编译,它们也会出现一些运行时问题–有些规则无法按预期启动。为了调试这些,我发现使用
AgendaEventListener
很有帮助。Drools提供了两种非常有用的议程事件侦听器实现,用于即时调试:
DebugAgendaEventListener
DebugRuleRuntimeEventListener

DebugAgendaEventListener和DebugRuleRuntimeEventListener有两种变体。来自
org.drools.core.event
包的文件使用
Logger
实例记录事件,而来自
org.kie.api.event.rule
包的文件使用
stderr
。但是,两者的功能完全相同

此外,可以利用Kie事件模型获取更多信息并进行自定义调试。可以找到更多信息

其他链接和参考: