添加自定义字段为标题在STOMP消息

问题描述:

我想补充版本:1.1到STOMP消息头这样的:添加自定义字段为标题在STOMP消息

destination:/cora/1234/panelapp/code/response 
content-type:application/json;charset=UTF-8 
subscription:sub-0 
message-id:bdyqehdj-5 
content-length:492 
**Version: 1.2** 
@Override 
    public Message<?> preSend(Message<?> message, MessageChannel channel) { 
     StompHeaderAccessor sha = StompHeaderAccessor.wrap(message); 
     StompCommand command = sha.getCommand(); 
     sha.setHeader(sha.STOMP_MESSAGE_HEADER, "1.2"); 
     sha.setVersion("1.2"); 
     sha.addNativeHeader(sha.STOMP_MESSAGE_HEADER, "1.2"); 
     return message; 
} 

但postSend方法我找不到在报头中的版本信息。如何将版本信息导入PostSend方法,该方法是通过ChannelInterceptorAdapter中的preSend方法设置的。


更新

@Override public Message<?> preSend(Message<?> message, MessageChannel channel) { 
return MessageBuilder.fromMessage(message).setHeader("Version","1.‌​2").build(); 
} 

我们可以设置标题为键/值对:

MutableMessageBuilder.fromMessage(message) 
      .setHeader("key","value") 
      .build(); 
+0

我跟你提到的方式尝试,但我得到了以下异常: 导致:java.lang.UnsupportedOperationException:MessageHeaders是不可变的 – Amit

+0

@Amit你可以尝试像上面 – Barath

+0

我发现下面从PostSend方法中的getMessageHeader(): getMessageHeaders:{simpMessageType = MESSAGE,nativeHeaders = {destination = [/ cora/1234/panelapp/code/response],content-type = [application/json; charset = UTF-8] },simpSubscriptionId = sub-0,conversionHint = method'checkPin'parameter -1,contentType = application/json; charset = UTF-8,simpSessionId = hlb2dg5z,simpDestination =/cora/1234/panelapp/code/response}。但在标题信息中找不到密钥 – Amit