【问题标题】:Is it possible to make JMS selector case insensitive?是否可以使 JMS 选择器不区分大小写?
【发布时间】:2017-01-06 15:23:59
【问题描述】:

我知道 JMS 标头属性区分大小写。但我正在研究一项要求,我必须使 JMS 选择器不区分大小写。有可能这样做吗? 我正在使用骆驼,下面是我在属性文件中定义选择器的方式。

accountQueue = ActiveMQqueueJmsComponent:queue:account?selector=money ('Dollar')

骆驼路线:

@Value("${consumer.accountQueue}")
   private String accountQueue;


@Bean
   RouteBuilder accountRouteBuilder() {
      return new RouteBuilder() {

         @Override
         public void configure() throws Exception {

            from(accountQueue).to(OrderService)
            }
            }
        }

我尝试使用 UPPER 和 LOWER 等功能,但无法成功。我定义如下。

accountQueue = ActiveMQqueueJmsComponent:queue:account?selector=money <> UPPER('Dollar')  // not working

【问题讨论】:

  • Article 可能会帮助您解决问题。

标签: spring apache-camel activemq camel-sql


【解决方案1】:

查看this JIRA issue 中添加到 ActiveMQ 的选择器增强中的函数调用。使用此增强功能,您或许可以制作出适合您需求的东西。

此增强功能允许使用一些内置函数进行一些自定义函数调用,如下所示:

    Message message = createMessage();
    assertSelector(message, "REGEX('1870414179', SessionserverId)", false);
    message.setLongProperty("SessionserverId", 1870414179);
    assertSelector(message, "REGEX('1870414179', SessionserverId)", true);
    assertSelector(message, "REGEX('[0-9]*', SessionserverId)", true);
    assertSelector(message, "REGEX('^[1-8]*$', SessionserverId)", false);
    assertSelector(message, "REGEX('^[1-8]*$', SessionserverId)", false);

    assertSelector(message, "INLIST(SPLIT('Tom,Dick,George',','), name)", false);
    assertSelector(message, "INLIST(SPLIT('Tom,James,George',','), name)", true);

    assertSelector(message, "INLIST(MAKELIST('Tom','Dick','George'), name)", false);
    assertSelector(message, "INLIST(MAKELIST('Tom','James','George'), name)", true);

    assertSelector(message, "REGEX('connection1111', REPLACE(JMSMessageID,':',''))", true);

【讨论】:

  • 感谢@Tim Bish 的回复。但是我使用了以下语法,但到目前为止还没有运气。 ActiveMQqueueJmsComponent:queue:account?selector=money '"REGEX(^[\p{DOLLAR}\p{dollar} ._-]*$)"'。我认为您发布的链接是在发布时对选择器进行自定义/应用功能。但我在订阅场景时正在寻找正则表达式。以下是我从队列中订阅的方式(也有问题)。
猜你喜欢
  • 2010-09-16
  • 1970-01-01
  • 2014-05-24
  • 2012-09-14
  • 1970-01-01
  • 1970-01-01
  • 2011-11-25
相关资源
最近更新 更多