Java 带选择器的activemq浏览命令
我正在使用ActiveMQ提供的用于浏览队列的UNIX命令,并尝试浏览特定队列,指定JMS选择器。这就是我想做的:Java 带选择器的activemq浏览命令,java,jms,activemq,jmstemplate,Java,Jms,Activemq,Jmstemplate,我正在使用ActiveMQ提供的用于浏览队列的UNIX命令,并尝试浏览特定队列,指定JMS选择器。这就是我想做的: ./activemq browse --amqurl tcp://host:port --msgsel "JMSMessageID='ID:XXXX'" QUEUE.FOO 通过JMSMessageID进行选择不起作用 然后,我想通过JMSText进行一些过滤,匹配任何字符串。这里的问题是消息是XML,可能我需要处理特殊字符 ./activemq browse --amqurl
./activemq browse --amqurl tcp://host:port --msgsel "JMSMessageID='ID:XXXX'" QUEUE.FOO
通过JMSMessageID进行选择不起作用
然后,我想通过JMSText进行一些过滤,匹配任何字符串。这里的问题是消息是XML,可能我需要处理特殊字符
./activemq browse --amqurl tcp://host:port --msgsel "JMSText='*<anyTag>SOMEVALUE</anyTag>*'" QUEUE.FOO
/activemq浏览——amqurltcp://host:port --msgsel“JMSText='*SOMEVALUE*'”QUEUE.FOO
有人做过这样的过滤吗?使消息与任何字符串匹配?根据以下内容:
必须在属性名称周围使用转义:\,即:
./activemq browse --amqurl tcp://host:port --msgsel \"JMSMessageID='ID:XXXX'\" QUEUE.FOO
使用通配符时,我仍然会出错。经过几个小时的尝试,终于找到了格式 外部应使用双引号。内部应转义单引号 要使用邮件id浏览确切的1封邮件,请执行以下操作:
./activemq browse --msgsel "JMSMessageID=\'ID:wilsonyipoffice-12345-1560070020263-6:3:1:1:2\'" queueName
要浏览来自同一主机的邮件,请执行以下操作:
./activemq browse --msgsel "messageID='wilsonyipoffice-12345-1560070020263-6'" queueName
也可以在purge命令中使用