如何调试drools决策表

问题描述 投票:1回答:1

有人可以帮助我如何在Drools中调试决策表。对于我们的项目,我们正在创建一个包含1000多条规则的决策表。每当他们在规则中的错误,电子表格不工作,并且它不显示确切的错误在哪里。

drools
1个回答
0
投票

Drools:版本7.15.0.Final

我目前遵循两种方法来调试决策表:

Compilation phase

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

有时我的决策表无法编译。

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

Code snippet for converting a drools decision table into its corresponding drl file

Runtime phase

有时,即使我的决策表已成功编译,它们也会有一些运行时问题 - 某些规则不会按预期启动。为了调试这些,我发现使用AgendaEventListener很有帮助。 Drools提供了两个有用的议程事件监听器实现,用于开箱即用的调试目的:DebugAgendaEventListenerDebugRuleRuntimeEventListener

DebugAgendaEventListenerDebugRuleRuntimeEventListener有两种变体。来自org.drools.core.event包的那些使用Logger实例来记录事件,其中来自org.kie.api.event.rule包的那些使用stderr。但是,两者都具有完全相同的功能。

此外,可以利用Kie事件模型来获取更多信息和自定义调试。更多信息可以在in the drools 7.15.0.Final docs找到。

其他链接和参考:https://javadude.wordpress.com/2012/03/06/debugging-drools-rules/

© www.soinside.com 2019 - 2024. All rights reserved.