我有2個應用程序(客戶端和服務器)使用請求 - 應答模式。使用特殊字符時JMS編碼的消息選擇器不匹配
客戶端向服務器發送一個請求消息ID設置爲這樣的:ID=Hostname-52991-1357677886768-3:1:2:1:1
。
現在,客戶端必須偵聽相關ID設置爲相同值的消息。由於該值包含特殊字符(:)我必須對該值進行編碼(使用UTF-8)。
設置JMS選擇器,它是用於在代理中過濾消息的SQL 92謂詞。您可能需要特殊字符進行編碼,如=爲%3D
所以選擇應該像JMSCorrelationID='ID=Hostname-52991-1357677886768-3:1:2:1:1'
和編碼的選擇應該像JMSCorrelationID='ID%3AHostname-52991-1357677886768-3%3A1%3A2%3A1%3A1'
我猜。
我已經掙扎了好幾個小時了,搜索了一下我能找到的所有東西,但是我不能讓這個東西起作用,而且這讓我瘋狂。
僅使用ASCII字符,如abcd
工程。
奇怪......我今天又試了一遍,它確實沒有編碼。我最初得到'InvalidSelectorException'與嵌套的'TokenMgrError's,帶有一些消息,例如第1行第一列的詞彙錯誤。遇到:'after:'。所以這對我來說是一個簡單的50分。 ;-) – siebz0r