我试图将消息标头插入AMQ。JMStem板中没有针对AMQ中设置标头的特定方法。当我这样设置时,它将保存在 StringProperty 中,而不是标题中。为了保存到标题如何传递数据
amqTemplate.convertAndSend(goMQ, message,new MessagePostProcessor() {
@Override
public Message postProcessMessage(Message message) throws JMSException {
message.setStringProperty("test1","testdata");
message.setStringProperty("country","US");
//setObjectProperty -- also set the string property
return message;
}
});
我需要将数据发送到标题中,客户端将为我的消息标题实现选择器。
您正在通过设置字符串属性正确地进行操作。现在,您的客户应该能够根据消息选择器接收消息。
例如,在JMS中,客户只会在以下设置中获得"我们"的消息:
<activation-config>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destinationJNDIName</activation-config-property-name>
<activation-config-property-value>jms/queueName</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>messageSelector</activation-config-property-name>
<activation-config-property-value>country='US'</activation-config-property-value>
</activation-config-property>
</activation-config>