2017-10-08 1 views
0

I Version hinzufügen möchten: 1.1 in STOMP-Message-Header wie folgt aus:benutzerdefinierte Feld in Header in STOMP Nachricht hinzufügen

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; 
} 

Aber in postSend Methode kann ich die Versionsinformationen in den Headern finden. Wie kann ich die Versionsinformationen in PostSend-Methode, die von PreSend-Methode in ChannelInterceptorAdapter festgelegt ist.


aktualisieren:

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

Antwort

1

Wir die Header als Schlüssel/Wert-Paare festlegen:

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

ich mit dem erwähnten Art und Weise versucht habe, aber ich habe die folgende Ausnahme: Verursacht von: java.lang.UnsupportedOperationException: MessageHeaders ist unveränderlich – Amit

+0

@Amit können Sie versuchen, wie oben – Barath

+0

Ich habe gefunden weiter unten von getMessageHeader() in der PostSend-Methode: getMessageHeaders: {simpMessageType = MESSAGE, nativeHeaders = {Ziel = [/ cora/1234/panelapp/code/response], content-type = [Anwendung/json; Zeichensatz = UTF-8] }, simpSubscriptionId = sub-0, conversionHint = Methode 'checkPin' Parameter -1, contentType = Anwendung/json; charset = UTF-8, simpSessionId = hlb2dg5z, simpDestination =/cora/1234/panelapp/code/response}. Aber nicht gefunden Schlüssel in der Header-Info – Amit

Verwandte Themen