JMS消息接收器按消息文本过滤

时间:2015-02-04 06:51:45

标签: java java-ee jms

我正在开展迁移项目。我想在jms消息文本上设置过滤器。这里JMS消息文本内容具有xml消息。在jms中是否有任何方法可以在xpath或某些文本内容或任何提供此类功能的工具上添加过滤器?

2 个答案:

答案 0 :(得分:0)

如果您可以在发送邮件之前在邮件头中包含属性,那么使用者可以根据邮件过滤邮件。

  • 您可以使用注释指定它。如果过滤标准是固定的,则更合适。

    @ActivationConfigProperty(propertyName = "messageSelector",
                propertyValue = "xkey = 'xValue'")
    
  • 否则,也可以在创建消费者时指定&可以在运行时提供/构建过滤条件。

    String messageSelector = "xkey = 'xValue'";
    session.createConsumer(destination, messageSelector);
    

否则,我不知道其他方式。但是根据特定属性的XML消息中的某些值来过滤消息,解析每个对象,检查所有属性等等是非常困难的。

答案 1 :(得分:0)

可能的解决方案可能是使用集成框架,即提供一些过滤器组件的Apache Camel。具体而言,Apache Camel提供以下message filters。我不知道你的项目有多大,也许它是一个开销...但它是一个解决方案。