我只是想创建一条具有多个处理器的路线。是否可以检查任何特定处理器是否正在设置任何交换。我正在尝试检查 xml 正文中的消息字段,如果消息是 hello 那么我正在设置交换正文并发送到队列3,如果条件失败我不应该向队列3发送任何消息
XML 输入:
<Header>
<MessageID>1</MessageID>
<Sender>ABC</Sender>
</Header>
<Body>
<Message>Hello</Message>
</Body>
路线:
from(queue1)
.process(processorA).to(queue2)
.process(processsorB).to(queue3)
.process(ProcessorC).to(queue4)
.end()
处理器B:
if(xmlmessage.getbody().getMessage() == "Hello")
{
exchange.genIn().setBody("World");
} else {
exchange.getIn().setBody(null);
}
在上面的路线中,我只是想检查天气处理器B是否设置了任何交换消息。那么我可以在路由器中做到这一点吗?或者有没有其他方法可以实现这个逻辑。我尝试了不同的选择但不起作用。欢迎任何建议
谢谢
如果您需要在processorB之后检查body是否为空,请执行以下操作:
from(queue1)
.process(processorA).to(queue2)
.process(processsorB).to(queue3)
.choice()
.when(body().isNotNull())
.process(ProcessorC).to(queue4)
.otherwise()
//do something
.endChoice()
.end()
有关选择
的更多信息