spring-boot - 检查天气处理器是否在骆驼路由器中设置任何交换消息
问题描述
我只是想用多个处理器创建一个路由。是否可以检查天气任何特定处理器是否设置任何交换。我正在尝试检查 xml 正文中的消息字段,如果 Message 是 hello 然后我正在设置交换正文并发送到 queue3 如果条件失败我不应该向 queue3 发送任何消息
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 是否设置任何交换消息。那么我可以在路由器中做到这一点吗?或者有没有其他方法可以实现这个逻辑。我尝试了不同的选项,但没有工作。接受任何建议
谢谢
解决方案
如果您需要在处理器B 之后检查正文是否为空,请执行以下操作:
from(queue1)
.process(processorA).to(queue2)
.process(processsorB).to(queue3)
.choice()
.when(body().isNotNull())
.process(ProcessorC).to(queue4)
.otherwise()
//do something
.endChoice()
.end()
有关选择的更多信息
推荐阅读
- openpyxl - Openpyxl,明智地搜索值列。
- javascript - 单元测试没有通过,即使它显然应该通过?
- xmpp - node-xmpp-server vs node-xmpp-client
- laravel-5 - Laravel 获取符合不同模型条件的集合
- wordpress - 在wordpress中匹配搜索结果后识别ACF字段
- python - matplotlib.animation 巨大的图像
- android - 如何使用 SSL 信任杀手应用程序避免 Okhttp 证书固定绕过?
- java - Set a local variable value from inside a lambda
- postgresql - SQLAlchemy 建议表缺少它具有的列: ProgrammingError: (psycopg2.ProgrammingError) column Canada.address 不存在
- c++ - How to write vector of ostreams in C++ which takes in all the different output streams like cout, ostringstream and ofstream