如何在JmsTemplate中发送头信息?

时间:2017-09-20 18:21:57

标签: spring camera spring-jms jmstemplate amq

我正在尝试将消息头插入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;
        }
    });

我需要将数据发送到标头,客户端将为我的邮件标题实现选择器。

1 个答案:

答案 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>