13.2. 过滤 JMS 消息属性
JMS 规格指出在选择器中使用的 String 属性不得转换为数字类型。例如,如果消息将 age
属性设置为 String 值 21
,则选择器 年龄 > 18
不得与它匹配。这个限制会限制 STOMP 客户端,因为它们只能使用 String 属性发送信息。
配置过滤器将字符串转换为数字
要将字符串属性转换为数字类型,请将前缀 convert_string_expressions:
添加到 过滤器
的值。
流程
编辑
<broker_instance_dir> /etc/broker.xml
,将前缀convert_string_expressions:
应用到所需的过滤器
。以下示例编辑filter
值从age > 18
toconvert_string_expressions:age > 18
。<configuration> <core> ... <addresses> <address name="myQueue"> <anycast> <queue name="myQueue"> <filter string="convert_string_expressions='age > 18'"/> </queue> </anycast> </address> </addresses> </core> </configuration>