【问题标题】:How to debug drools decision table如何调试drools决策表
【发布时间】:2023-03-31 14:25:01
【问题描述】:

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

【问题讨论】:

    标签: drools


    【解决方案1】:

    Drools:版本 7.15.0.Final

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

    编译阶段

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

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

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

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

    运行阶段

    有时,即使我的决策表编译成功,它们也会出现一些运行时问题——某些规则不会按预期触发。为了调试这些,我发现使用 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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多