【发布时间】:2022-08-11 05:00:14
【问题描述】:
我正在尝试使用 MessagePostProcessor 的实例在我的消息上添加标题 x-delay 但它给了我一个例外说:
java.lang.UnsupportedOperationException:MessageHeaders 是不可变的
import org.springframework.messaging.Message import org.springframework.messaging.core.MessagePostProcessor import org.springframework.stereotype.Component @Component class AmpqRoutingKeyStrategy { private static CUSTOM_DELAY = 120000 MessagePostProcessor get() { return withDelay(CUSTOM_DELAY) } static MessagePostProcessor withDelay(Integer milliSeconds) { return new MessagePostProcessor() { @Override Message postProcessMessage(Message message) { message.getHeaders().put(\'x-delay\', milliSeconds) return message } } } }上面的例子在很多关于这个主题的文章中都有使用,我知道我们可以选择添加
x-delay标头,但是我怎样才能在不引发这个异常的情况下做到这一点呢?