在eclipse中调试EJB内部的Drools

时间:2013-04-04 02:30:47

标签: eclipse ejb drools

我目前正在调试一个Web应用程序,该应用程序在EJB中使用drools规则集来处理业务规则。它部署在JBoss服务器中。我已经配置了eclipse来运行服务器,所以我可以使用eclipse的Debug on Server功能。

当我到达触发drools规则集的类时,服务器失去焦点并在触发所有规则后返回。有没有办法可以追踪被解雇的规则?现在,我所做的是将日志放在* .drl文件中,以便知道应用程序在规则引擎中的位置。

3 个答案:

答案 0 :(得分:2)

当您将名为drools.packagebuilder.conf的文件添加到%USERHOME%目录时,您可以获取任何规则的生成的java源代码。 该文件必须包含以下指令:

drools.dump.dir = d:/ myDroolsJavaSourceCode

目录d:/ myDroolsJavaSourceCode - 目录(或任何其他给定名称)必须存在,否则Drools Packagebuild将停止执行。

然后,您可以将此目录作为新项目添加到Eclipse环境中(可能您必须删除标记'Default Location'以选择'myDroolJavaSourceCode')。 然后,您可以在Eclipse中打开文件并在编辑器中设置断点。

也许你必须在调试执行期间两次附加目录。

祝你好运!

克里斯托夫

答案 1 :(得分:0)

据我所知你无法调试drl文件。我们所做的是封装when的逻辑然后在一个方法中,这样你至少可以调试它。

麦迪

答案 2 :(得分:0)

我做的是下载了drools-engine的源代码,并将drl文件编译成了他们的java源代码。运行应用程序时,您可以选择在断点到达引擎时附加源。仍然很难追踪被触发的规则(可以触发来自不同drls的多个规则),但它比仅仅sysout日志更好。