我正在尝试将rabbitmq生产者的C#版本转换为java版本,我遇到的一个问题是弄清楚如何发送具有多个字符串值的消息头。我想我可能已经找到了它,但是我如何向 header.txt 添加附加值?当前代码:
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.");
但只出现最后一个 header 属性。如何向 header 添加更多值?
最佳答案
第二个替换第一个。
尝试使用:
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.");
这样应该可以按您的预期工作
关于基于java的rabbitmq生产者发送带有 header 的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27138922/