基于RabbitMQ浏览器的UI无法在Headers字段中输入HashMap

基于RabbitMQ浏览器的UI无法在Headers字段中输入HashMap,rabbitmq,Rabbitmq,RabbitMQ队列中my message的标头具有以下规范: headers={ httpHeaders={transactionID=123, sessionID=451554}, contentType=text/plain, timestamp=1539607167303 } 因此,我在名为httpHeaders的键中嵌入了Hashmap。 我希望使用RabbitMQ UI复制此行为,但我不知道如何设置它

RabbitMQ队列中my message的标头具有以下规范:

headers={
          httpHeaders={transactionID=123, sessionID=451554}, 
          contentType=text/plain,
          timestamp=1539607167303
          }
因此,我在名为httpHeaders的键中嵌入了Hashmap。 我希望使用RabbitMQ UI复制此行为,但我不知道如何设置它

选择列表选项仅为:字符串、布尔值、数字和列表

这是我以编程方式复制消息头的测试:

@Test
public void getTransactionId() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
    String payload = "payload";
    Map messageHeader = new HashMap();
    Map httpHeader = new HashMap();
    httpHeader.put(HttpHeaderKeys.TRANSACTION_ID_KEY, "123");
    messageHeader.put(HTTP_HEADER_KEY, httpHeader);
    MessageHeaders messageHeaders = new MessageHeaders(messageHeader);
    GenericMessage message = new GenericMessage(payload, messageHeaders);
    Method method = MDCUtils.class.getDeclaredMethod("getTransactionId", Message.class);
    method.setAccessible(true);
    Object result = method.invoke(null, message);
    assertEquals("123", result);
}

您可以通过以下方式添加标题:


我收到一个
java.lang.IllegalArgumentException:为标题“headerHttp”指定的类型不正确。应为[interface java.util.Map],但实际类型为[class java.lang.String]
,因为httpHeaders被视为字符串而不是映射。执行在
message.getHeaders().get(HttpHeaderKeys.HTTP_HEADER_KEY,Map.class)
中失败,我在其中转换它以获取transactionID KEY的值