Spring integration 使用消息存储通道后保留时间戳标头

Spring integration 使用消息存储通道后保留时间戳标头,spring-integration,Spring Integration,我使用了一个由消息存储备份的队列通道,发现时间戳头与原始值不一致,有没有办法保持它 这是我的配置 <int:channel id="myChannel"> <int:queue message-store="myStore"/> </int:channel> 提前谢谢 您要查找的内容在版本5.0中已被修复: 请注意我在描述末尾的一句话: 使用此修复程序,在执行标准序列化过程时,我们将消息按原样保留在存储中,而不进行任何修改 任何自定义序列化程序都

我使用了一个由消息存储备份的队列通道,发现时间戳头与原始值不一致,有没有办法保持它

这是我的配置

<int:channel id="myChannel">
    <int:queue message-store="myStore"/>
</int:channel>


提前谢谢

您要查找的内容在版本
5.0
中已被修复:

请注意我在描述末尾的一句话:

使用此修复程序,在执行标准序列化过程时,我们将消息按原样保留在存储中,而不进行任何修改

任何自定义序列化程序都应该考虑使用MutableMessageBuilder,如果需要保留ID和时间戳

默认设置如下所示:

public Message<?> mapRow(ResultSet rs, int rowNum) throws SQLException {
    return (Message<?>) this.deserializer.convert(this.lobHandler.getBlobAsBytes(rs, "MESSAGE_BYTES"));
}
公共消息映射行(ResultSet rs,int rowNum)抛出SQLException{
返回(消息)this.deserializer.convert(this.lobHandler.getBlobAsBytes(rs,“消息字节”);
}

因此,我们明确地保留了传入的
ID
TIMESTAMP

您使用的
MessageStore
实现是什么?jdbcmessagestore尝试改用此实现:。看,这是JavaDocs for DetailsOry,我错了,我已经在使用jdbcChannelMessageStore了。我使用Spring集成4.3.1Ok!那就可以了。对我来说,我们在
5.0中修复了它