如何在apache camel xml配置文件中过滤jms消息

时间:2018-05-15 10:45:06

标签: apache-camel activemq camel-jms

我希望在一般主题上创建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>

1 个答案:

答案 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。