如何调试drools决策表
有人能帮我调试Drools中的决策表吗。对于我们的项目,我们正在创建一个包含1000多条规则的决策表。当规则中出现错误时,谁的电子表格不起作用,也没有显示准确的错误位置。Drools:version 7.15.0.Final 我目前采用两种方法调试决策表: 编译阶段 在我的例子中,我必须序列化决策表以节省时间–通常它们会转换为如何调试drools决策表,drools,Drools,有人能帮我调试Drools中的决策表吗。对于我们的项目,我们正在创建一个包含1000多条规则的决策表。当规则中出现错误时,谁的电子表格不起作用,也没有显示准确的错误位置。Drools:version 7.15.0.Final 我目前采用两种方法调试决策表: 编译阶段 在我的例子中,我必须序列化决策表以节省时间–通常它们会转换为.drl文件,然后进行评估。我跳过这一行,直接编译它们,获取知识库并序列化它们。我的应用程序使用这些序列化的知识库 有时我的决策表无法编译 我通过生成.drl文件来调试它们
.drl
文件,然后进行评估。我跳过这一行,直接编译它们,获取知识库并序列化它们。我的应用程序使用这些序列化的知识库
有时我的决策表无法编译
我通过生成.drl
文件来调试它们。drl解析器生成的错误大部分可以从生成的.drl
文件中识别出来
运行阶段
有时,即使我的决策表已成功编译,它们也会出现一些运行时问题–有些规则无法按预期启动。为了调试这些,我发现使用AgendaEventListener
很有帮助。Drools提供了两种非常有用的议程事件侦听器实现,用于即时调试:DebugAgendaEventListener
和DebugRuleRuntimeEventListener
DebugAgendaEventListener和DebugRuleRuntimeEventListener有两种变体。来自org.drools.core.event
包的文件使用Logger
实例记录事件,而来自org.kie.api.event.rule
包的文件使用stderr
。但是,两者的功能完全相同
此外,可以利用Kie事件模型获取更多信息并进行自定义调试。可以找到更多信息
其他链接和参考: