java.lang.UnsupportedOperationException:如果在处理程序中添加header,则MessageHeaders是不可变的
我的处理程序中有以下行:java.lang.UnsupportedOperationException:如果在处理程序中添加header,则MessageHeaders是不可变的,java,spring-integration,Java,Spring Integration,我的处理程序中有以下行: headers.put(EMPTY_FILE, true); 这是一个原因: 2019-11-26 13:36:29.420 ERROR 2216 --- [sub-subscriber3] o.s.integration.handler.LoggingHandler : ErrorMessage [payload=org.springframework.messaging.MessageHandlingException: error occurred duri
headers.put(EMPTY_FILE, true);
这是一个原因:
2019-11-26 13:36:29.420 ERROR 2216 --- [sub-subscriber3] o.s.integration.handler.LoggingHandler : ErrorMessage [payload=org.springframework.messaging.MessageHandlingException: error occurred during processing message in 'MethodInvokingMessageProcessor' [org.springframework.integration.handler.MethodInvokingMessageProcessor@319058ce]; nested exception is java.lang.UnsupportedOperationException: MessageHeaders is immutable, failedMessage=GenericMessage...
如何修复它?MessageHeaders是只读的。您只能将exists头复制到新映射(也包括您自己的头)并从此映射创建新的MessageHeader。我想这将帮助您如何用新头替换旧头?
message=MessageBuilder.fromMessage(message).setHeader(…).build()代码>