Spring boot 检查天气处理器是否在骆驼路由器中设置了任何交换消息

Spring boot 检查天气处理器是否在骆驼路由器中设置了任何交换消息,spring-boot,apache-camel,activemq,Spring Boot,Apache Camel,Activemq,我只是想用多个处理器创建一个路由。是否可以检查是否有特定的处理器正在设置任何交换。我试图检查xml正文中的消息字段,如果消息是hello,那么我将设置exchange正文并发送到queue3。如果条件失败,我不应该向queue3发送任何消息 XML输入: <Header> <MessageID>1</MessageID> <Sender>ABC</Sender> </Header> <Body>

我只是想用多个处理器创建一个路由。是否可以检查是否有特定的处理器正在设置任何交换。我试图检查xml正文中的消息字段,如果消息是hello,那么我将设置exchange正文并发送到queue3。如果条件失败,我不应该向queue3发送任何消息

XML输入:

<Header>
   <MessageID>1</MessageID>
   <Sender>ABC</Sender>
</Header>
<Body>
   <Message>Hello</Message>
</Body>
ProcessorB:

if(xmlmessage.getbody().getMessage() == "Hello")
{
  exchange.genIn().setBody("World");
} else {
  exchange.getIn().setBody(null);
}
在上面的路由中,我只想检查天气处理器是否设置了任何交换消息。那我可以在路由器里做吗?或者有没有其他方法可以实现这个逻辑。我尝试了不同的选择,但没有成功。接受任何建议


如果您需要在Processor之后检查正文是否为空,请执行以下操作:

from(queue1)
.process(processorA).to(queue2)
.process(processsorB).to(queue3)
.choice()
 .when(body().isNotNull())
     .process(ProcessorC).to(queue4)
 .otherwise()
     //do something
 .endChoice()
 .end()
更多关于

from(queue1)
.process(processorA).to(queue2)
.process(processsorB).to(queue3)
.choice()
 .when(body().isNotNull())
     .process(ProcessorC).to(queue4)
 .otherwise()
     //do something
 .endChoice()
 .end()