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中修复了它