我有两个使用请求 - 回复模式的应用程序(客户端和服务器)。
客户端向服务器发送请求,消息ID设置为:ID=Hostname-52991-1357677886768-3:1:2:1:1
。
现在,客户端必须侦听相关ID设置为相同值的消息。由于该值包含特殊字符(:)我必须对值进行编码(使用UTF-8)。
设置JMS选择器,它是一个SQL 92谓词,用于过滤代理中的消息。您可能必须编码特殊字符,例如= as%3D
所以选择器应该看起来像JMSCorrelationID='ID=Hostname-52991-1357677886768-3:1:2:1:1'
,编码的选择器看起来应该像JMSCorrelationID='ID%3AHostname-52991-1357677886768-3%3A1%3A2%3A1%3A1'
。
我现在已经挣扎了几个小时,搜索并阅读了我能找到的所有内容,但我无法让这件事情发挥作用,这让我疯狂。
仅使用abcd
之类的ASCII字符。
答案 0 :(得分:1)
您的JMS选择器选择器是HTML编码的,不能与底层系统一起使用(因为它永远不会与消息匹配)。表达式JMSCorrelationID ='ID = Hostname-52991-1357677886768-3:1:2:1:1'应该按原样工作。