2017-01-06 7 views
0

JMS 헤더 속성이 대소 문자를 구분한다는 것을 알고 있습니다. 하지만 JMS Selctor를 대소 문자를 구분하지 않도록해야하는 한 가지 요구 사항에 대해 노력하고 있습니다. 그렇게 할 수 있습니까? 나는 낙타를 사용하고 있으며 아래는 속성 파일에서 선택기를 정의하는 방법입니다.JMS 선택자 대소 문자를 구분하지 않도록 할 수 있습니까?

accountQueue = ActiveMQqueueJmsComponent : 큐 : 계정 선택 = 돈 <> ('달러')

낙타 경로 :

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


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

     @Override 
     public void configure() throws Exception { 

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

내가 상하 같은 기능을 사용하려고하지만, 얻을 수 없습니다 성공. 나는 아래처럼 무시하고있다.

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

[도움말] (http://stackoverflow.com/questions/31969274/apache-mq- jms-message-selector)를 사용하면 쿼리를 해결하는 데 도움이 될 수 있습니다. – Avadhut

답변

0

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); 
+0

@Tim Bish에게 답장을 보내 주셔서 감사합니다. 그러나 나는 아래 문법을 사용했지만 아직까지는 운이 없다. ActiveMQqueueJmsComponent : queue : account? selector = money <> ' "REGEX (^ [\ p {$} {$}. 게시하는 동안 선택기에서 사용자 정의/적용 기능을 만드는 것이 게시 된 링크라고 생각합니다. 하지만 구독 시나리오 동안 정규식을 찾고 있습니다. 아래는 내가 대기열에서 구독하는 방식입니다 (또한 질문에 표시됨). –