如何使用JMS关联ID标识消息?

如何使用JMS关联ID标识消息?,jms,activemq-artemis,Jms,Activemq Artemis,如何使用JMS关联ID标识消息?我使用的代码如下,但我无法将消息从队列中取出。该工具已确认队列中存在在PropertiesText中设置了JMSCorrelationID='ID:1234567'的消息。发生了什么?是否可以在为JMSCorrelationID指定的值中包含空格? 是否可以使用类似于'ID:1234 ABC'的值 发件人: MessageProducer-mproducer; 会议期间; ... 字符串selectKey=“”ID:1234567'; ObjectMessage

如何使用JMS关联ID标识消息?我使用的代码如下,但我无法将消息从队列中取出。该工具已确认队列中存在在PropertiesText中设置了
JMSCorrelationID='ID:1234567'
的消息。发生了什么?是否可以在为
JMSCorrelationID
指定的值中包含空格? 是否可以使用类似于
'ID:1234 ABC'
的值

发件人:

MessageProducer-mproducer;
会议期间;
...
字符串selectKey=“”ID:1234567';
ObjectMessage msg=qSession.createObjectMessage(数据);
msg.setJMSCorrelationID(selectKey);
mProducer.send(msg);
接受者

会话qSession;
...
字符串selectMsgKey=“JMSCorrelationID='ID:1234567';
MessageConsumer mConsumer.createConsumer(队列,选择msgkey);
mConsumer.receive(60000);

我使用ActiveMQ Artemis。

您可以在相关ID中使用空格。我认为问题在于您在发件人中定义
selectKey
的方式。您有额外的
字符。您只需使用:

String selectKey=“ID:1234567”;

那么你的选择器就可以工作了。

谢谢你,贾斯汀。我现在可以用你教我的方法正常地得到信息了。