我目前正在建立在这里找到的骆驼流口水示例:https ://github.com/FuseByExample/camel-drools-example
路线如下:
<route trace="false" id="testRoute">
<description>Example route that will regularly create a Person with a random age and verify their age</description>
<from uri="timer:testRoute"/>
<bean method="createTestPerson" ref="personHelper"/>
<to uri="drools:node1/ksession1?action=insertBody" id="AgeVerification">
<description>valid 'action' values are:
'execute' that takes a 'Command' object (default)
'insertBody' that inserts the Exchange.in.body, and executes rules
'insertMessage' that inserts the Exchange.in (type org.apache.camel.Message), and executes rules
'insertExchange' that inserts the Exchange (type org.apache.camel.Exchange), and executes rules
</description>
</to>
<choice>
<when id="CanDrink">
<simple>${body.canDrink}</simple>
<log logName="Bar" message="Person ${body.name} can go to the bar"/>
</when>
<otherwise>
<log logName="Home" message="Person ${body.name} is staying home"/>
</otherwise>
</choice>
</route>
我已经为我自己的项目扩展了这个示例,并添加了更复杂的规则和不同的事实,我现在想对其进行调试,但是我不知道如何让 Drools 调试在骆驼/熔断器环境中工作。
理想情况下,我希望看到 Drools IDE 提供的所有各种调试视图,例如议程视图、工作内存视图等(根据http://docs.jboss.org/drools/release/5.5.0.Final/流口水专家文档/html/ch06.html#d0e8478)。我已将我的 Eclipse 项目转换为 Drools 项目。我创建了一个新的“Drools 应用程序”调试配置,但不知道在“主类”部分放置什么。我没有自己的主类,因为它是调用规则触发并将事实插入工作内存的骆驼。
我已经尝试将应用程序作为普通 Java 应用程序进行调试,因此我在执行应用程序的 drools 部分之前设置了断点。我遵循了 drools 文档,该文档说,如果您设置正常断点并单击应填充 drools“工作内存”或“议程”视图的 workingMemory 变量,但是我总是看到“选定的工作内存为空”,即使虽然我知道它不是。我已经从头到尾单步执行了所有可能的 WorkingMemory 变量的代码,但我仍然看到“选定的工作内存为空”错误。
有没有人能够在使用骆驼部署时成功调试口水?如果是这样,您采取了哪些步骤?
干杯。