Apache camel 在camel/fuseesb中部署时调试会下降
我目前正在构建这里的骆驼流口水示例: 路线如下:Apache camel 在camel/fuseesb中部署时调试会下降,apache-camel,drools,fuseesb,spring-dm,Apache Camel,Drools,Fuseesb,Spring Dm,我目前正在构建这里的骆驼流口水示例: 路线如下: <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"/> <be
<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>
定期创建随机年龄的人员并验证其年龄的示例路线
有效的“操作”值为:
获取“命令”对象的“执行”(默认)
插入Exchange.in.body并执行规则的“insertBody”
插入Exchange.in(键入org.apache.camel.Message)并执行规则的“insertMessage”
插入交换(键入org.apache.camel.Exchange)并执行规则的“insertExchange”
${body.canDrink}
我已经为我自己的项目扩展了这个示例,并添加了更复杂的规则和不同的事实,现在我想调试这些规则和事实,但是我不知道如何在camel/fuse环境中进行Drools调试
理想情况下,我希望看到Drools IDE提供的所有各种调试视图,如议程视图、工作内存视图等(根据)。我已将Eclipse项目转换为Drools项目。我已经创建了一个新的“Drools应用程序”调试配置,但不知道在“主类”部分放置什么。我没有自己的主类,因为它是调用触发规则并将事实插入工作内存的camel
我已经尝试将应用程序作为普通Java应用程序进行调试,因此在执行应用程序的drools部分之前设置了断点。我遵循了drools文档中的说明,即如果设置正常断点并单击drools“Working memory”或“Agenda”视图应填充的workingMemory变量,则我始终会看到“所选工作内存为空”,即使我知道它不是空的。我从头到尾都在浏览代码,点击所有可能的WorkingMemory变量,但仍然看到“所选工作内存为空”错误
在使用camel部署时,是否有人能够成功调试drools?如果是,你采取了什么措施
干杯。我使用KnowledgeRuntimeLogger帮助调试我的camel/drools应用程序。它创建了一个日志文件,我在审计视图中查看该文件(您可以在eclipse中将其拖动到视图中) KnowledgeRuntimeLogger flogger=KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession,“c:/temp/wmlog”) 如果您需要在spring中执行此操作,可以将其创建为带有两个构造函数参数的bean(或者创建您自己的创建记录器的小bean)
hth注意,6.0.0-SNAPSHOT在osgi、camel和karaf方面的改进正在进行中;但我很想看看你对drools做了什么:)它是开源的吗?