基于java的rabbitmq生成器发送带标头的消息

时间:2014-11-25 23:47:46

标签: java rabbitmq

我正在尝试将一个Rabbitmq生产者的C#版本转换为java中的一个版本,而我遇到的一个问题就是找出如何发送带有多个字符串值的消息头。我想我可能已经找到了它但是如何在标题中添加其他值。目前的代码:

 AMQP.BasicProperties.Builder builder = new AMQP.BasicProperties().builder();
 builder.headers(Collections.<String,Object>singletonMap("pId",ID));
 builder.headers(Collections.<String,Object>singletonMap("query",searchQ));
 pchannel.basicPublish("","best_queue",builder.build(),post.getBytes());
 System.out.println(" [x] Sent '" + msgcount.toString() + "' MESSAGES.");

但只显示最后一个标题属性。如何在标题中添加更多值?

1 个答案:

答案 0 :(得分:1)

第二个替换第一个。

尝试使用:

  Map<String,Object> headerMap = new HashMap<String, Object>();
  headerMap.put(key,value)
  headerMap.put(key1,value1)
  headerMap.put(key2,value2)
  builder.headers(headerMap);
  pchannel.basicPublish("","best_queue",builder.build(),post.getBytes());
  System.out.println(" [x] Sent '" + msgcount.toString() + "' MESSAGES.");

以这种方式应该按预期工作