spring - Spring Cloud Stream @StreamListener 自定义 MappingJackson2MesageConverter
问题描述
我ObjectMapper
在我的应用程序中配置了一个自定义模块,该模块具有用于反序列化 Guava 在 Jackson 中提供的不可变类型的自定义模块。
我的问题是我似乎无法通过正确地反序列化我的对象来覆盖objectMapper
使用。@StreamListener
这是我尝试过的:
@Bean
public MessageConverter messageConverter() {
final MappingJackson2MessageConverter mappingJackson2MessageConverter = new MappingJackson2MessageConverter();
mappingJackson2MessageConverter.setObjectMapper(objectMapper);
return mappingJackson2MessageConverter;
}
上面的代码片段在一个带有注释的类中,@Configuration
并且objectMapper
在类中定义:
public static final ObjectMapper objectMapper = new ObjectMapper()
.registerModule(new ParameterNamesModule(JsonCreator.Mode.PROPERTIES))
.registerModule(new GuavaModule());
关于我可能遗漏的任何想法?
- Spring Boot: 1.5.10.RELEASE
- 春兔: 1.7.6.RELEASE
- Spring Cloud Stream: 1.2.2.RELEASE
- 春季消息: 4.3.14.RELEASE
解决方案
所以,事实证明我的配置没有问题。我的自定义ObjectMapper
被MappingJackson2MessageConverter
. 但是,没有选择消息转换器,因为发送的消息带有错误的内容类型标头。
故事的道德,小心 Content-Type 并确保它与转换器匹配。
推荐阅读
- php - SQL查询,一对多,每个匹配的计数
- python - Pymongo - 如何返回特定字段?
- mybatis - 未找到参数“updateBy”。可用参数为 [0, createBy, param1, param2]
- python - 如何通过 pip 在特定 python 安装的站点包中安装 python 包?
- assembly - 取消设置 asm 中的最低设置位
- python - LSTM 模型;无效的 input_h 形状:[1,10,128] [1,4,128]
- python - 如何从 numpy 数组创建这个矩阵?
- cesium - 在 2D 地图中如何获取鼠标位置的地形高度?
- asp.net - 为什么我的单选按钮 asp 代码得到“无效的回发或回调参数”?
- javascript - 我正在制作一个旁观反应组件,当将鼠标悬停在上面时,它看起来会放大。您如何安排国有资产?