我希望在一般主题上创建jms订阅者。为了避免不需要的消息,我想在那里创建一个过滤器。问题是从java代码的每个地方都可以使用语法,但我找不到如何在xml配置文件中做同样的事情,如blueprint.xml
Java代码
String redSelector = "color='red'";
MessageConsumer redConsumer = redSession.createConsumer(queue, redSelector);
Apache骆驼路线
<route id="externalNotificationsDispatchRoute" >
<from uri="activemq:queue:{{vqueue.name}}" />
.. filtering part
<to uri="log:com?level=DEBUG" />
</route>
答案 0 :(得分:1)
使用selector
URI参数指定JMS消息选择器。
<强>蓝图:强>
<from uri="activemq:queue:{{vqueue.name}}?selector={{vqueue.selector}}" />
属性文件:
vqueue.selector=color%3D'red'
参考JMS component documentation(ActiveMQ组件来自JMS组件的参数)
<强>选择强>
设置JMS选择器,它是一个SQL 92谓词,用于过滤代理中的消息。您可能必须将'='等特殊字符编码为%3D。