2013-01-08 1 views
1

요청 - 응답 패턴을 사용하는 두 개의 응용 프로그램 (클라이언트 및 서버)이 있습니다.특수 문자 사용시 JMS 인코딩 된 메시지 선택자가 일치하지 않습니다.

클라이언트가 메시지 ID가 ID=Hostname-52991-1357677886768-3:1:2:1:1과 같이 설정되어있는 서버에 요청을 보냅니다.

이제 클라이언트는 상관 ID가 동일한 메시지를 청취해야합니다. 값에 특수 문자 (:)가 포함되어 있으므로 UTF-8을 사용하여 값을 인코딩해야합니다.

브로커 내에서 메시지를 필터링하는 데 사용되는 SQL 92 술어 인 JMS Selector를 설정합니다. % 3D가

그래서 셀렉터 JMSCorrelationID='ID=Hostname-52991-1357677886768-3:1:2:1:1'과 같아야하고, 인코딩 선택은 내가 생각 JMSCorrelationID='ID%3AHostname-52991-1357677886768-3%3A1%3A2%3A1%3A1'과 같아야 같이 = 같은 특수 문자를 인코딩 할 수 있습니다.

나는 지금 두 시간 동안 고생하고 내가 찾을 수있는 모든 것을 검색하고 읽었지만이 일을 할 수는 없으며 내게 열매를 맺는다.

abcd과 같은 ASCII 문자 만 사용하십시오.

답변

1

JMS 선택기 선택기가 기본 시스템에서 작동하지 않는 HTML 코드화되어 있습니다 (메시지와 일치하지 않으므로). JMSCorrelationID = 'ID = Hostname-52991-1357677886768-3 : 1 : 2 : 1 : 1'표현식은있는 그대로 작동해야합니다.

+0

이상한 ... 오늘 다시 시도해 보니 인코딩없이 작동했습니다. 나는 처음에 'InvalidSelectorException'을 중첩 된'TokenMgrError'와 함께'Line 1, column?과 같은 어휘 에러! 발생했습니다 : '이후 :'. 그래서 그것은 당신이 생각하기에는 쉬운 50입니다. ;-) – siebz0r