Spring boot 检查天气处理器是否在骆驼路由器中设置了任何交换消息
我只是想用多个处理器创建一个路由。是否可以检查是否有特定的处理器正在设置任何交换。我试图检查xml正文中的消息字段,如果消息是hello,那么我将设置exchange正文并发送到queue3。如果条件失败,我不应该向queue3发送任何消息 XML输入: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>
<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()