我想要两个使用单个activemq队列的使用者,并且想要在使用时进行过滤。选择性是我的最佳选择(请提出建议)。但是发件人不会向我发送任何标头参数或任何属性,选择性发送仅适用于标头或属性,现在我想在消息正文上过滤消息。有什么方法可以对邮件正文使用选择性
我的两个消息正文在test和test2上有所不同
{
"test":{
"abc":"123",
"cde":"123"
}
}
{
"test2":{
"abc":"321",
"cde":"321"
}
}
我希望消息正文具有选择性
from("jms:selective?selector=" + java.net.URLEncoder.encode(${body.test})).
to("cxf:bean:replica01");
from("jms:selective?selector=" + java.net.URLEncoder.encode(${body.test2})).
to("cxf:bean:replica02");
请建议是否有任何方法。
答案 0 :(得分:1)
正如selector documentation for ActiveMQ 5.x所指出的,您可以对具有XML主体的消息使用基于XPath的选择器。但是,您的消息主体不是XML,因此似乎无法获得所需的功能。
请记住,就代理而言,消息的主体只是一个字节数组,而键入的消息头/属性则允许进行使选择器可行的各种比较操作。