我正在尝试将消息头插入amq。 JMSTemplate中没有用于在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;
}
});
我需要将数据发送到标头,客户端将为我的邮件标题实现选择器。
答案 0 :(得分:0)
您正在通过设置字符串属性来正确执行此操作。现在,您的客户端应该能够根据消息选择器接收消息。
例如,在jms中,客户端将仅通过以下设置获取国家“US”的消息:
<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>