【发布时间】:2012-04-25 15:45:33
【问题描述】:
我正在尝试在持久的 activemq 队列上抓取消息。
如果我打电话
jmsTemplate.receive("queue.response")
我收到一条消息。但是,如果我打电话
jmsTemplate.receiveSelected("queue.response", "JMSCorrelationId='1854044'")
我在等待时超时。
我正在使用 ActiveMQ Web 控制台查看队列,我可以看到消息已准备好被使用。相关 ID 在控制台中可见,我还可以在通过直接接收(“队列..”)调用收到的消息中看到它们。
可能我的实际选择器有问题,但我能找到的每个示例看起来都像我所拥有的那样。
任何想法我做错了什么?
【问题讨论】:
-
你试过没有'围绕Id值吗?
-
您确定您的关联 ID 正确吗?
-
@Carlo :是的,试过不带 '.结果是它拾取了所有消息,我想是因为选择器无效。
-
@Nico :是的,双三重和四重检查了相关 ID。我将它直接从 web 控制台复制到我的代码中。
-
您是否设置了关联 ID (docs.oracle.com/javaee/1.4/api/javax/jms/…)?