Java 带选择器的activemq浏览命令

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提供的用于浏览队列的UNIX命令,并尝试浏览特定队列,指定JMS选择器。这就是我想做的:

./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命令中使用