Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在STOMP消息的标题中添加自定义字段_Java_Spring_Stomp - Fatal编程技术网

Java 在STOMP消息的标题中添加自定义字段

Java 在STOMP消息的标题中添加自定义字段,java,spring,stomp,Java,Spring,Stomp,我想将版本:1.1添加到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** 目的地:/cora/1234/panelapp/code/response 内容类型:application/

我想将版本:1.1添加到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** 目的地:/cora/1234/panelapp/code/response 内容类型:application/json;字符集=UTF-8 订阅:sub-0 消息id:bdyqehdj-5 内容长度:492 **版本:1.2**
@覆盖
公共消息呈现(消息消息、消息通道){
StompHeaderAccessor sha=StompHeaderAccessor.wrap(消息);
StompCommand=sha.getCommand();
sha.setHeader(sha.STOMP_消息_头,“1.2”);
sha.设定版本(“1.2”);
sha.addNativeHeader(sha.STOMP_消息_头,“1.2”);
返回消息;
}
但是在postSend方法中,我在标题中找不到版本信息。如何将版本信息获取到PostSend方法中,该方法是从ChannelInterceptorAdapter中的PresSend方法设置的


更新

@Override public Message<?> preSend(Message<?> message, MessageChannel channel) { 
 return MessageBuilder.fromMessage(message).setHeader("Version","1.‌​2").build(); 
}
@覆盖公共消息呈现(消息消息,消息通道){
返回MessageBuilder.fromMessage(message).setHeader(“版本”,“1”。‌​2“.build();
}

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

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

我已经尝试过你提到的方法,但我得到了以下异常:java.lang.UnsupportedOperationException:MessageHeaders是immutable@Amit你能像上面那样尝试吗?我在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'参数-1,contentType=application/json;charset=UTF-8,simpSessionId=hlb2dg5z,simpdestation=/cora/1234/panelapp/code/response}。但在头信息中找不到键,但在使用sha reference?进行更改后,您发送回的消息与未形成消息的消息相同?。我是否在这里遗漏了一些内容
@Override public Message preSend(Message Message,MessageChannel channel){MessageBuilder.fromMessage(Message).setHeader(“Version”,“1.2”).build();StompHeaderAccessor sha=StompHeaderAccessor.wrap(Message);StompCommand=sha.getCommand();return Message;}
`StompHeaderAccessor sha=StompHeaderAccessor.wrap(消息);logger.info(“+sha.getMessageHeaders().toString())`
  MutableMessageBuilder.fromMessage(message)
            .setHeader("key","value")
            .build();