Java 在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/json;字符集=UTF-8 订阅:sub-0 消息id:bdyqehdj-5 内容长度:492 **版本:1.2**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/
@覆盖
公共消息呈现(消息消息、消息通道){
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();