我在自己的应用程序中配置了一个自定义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());
关于我可能会缺少的任何想法吗?
答案 0 :(得分:2)
因此,事实证明我的配置没有问题。 ObjectMapper
正在选择我的自定义MappingJackson2MessageConverter
。但是,未选择消息转换器,因为使用错误的内容类型标头发送了消息。
故事的寓意,请谨慎使用Content-Type,并确保其与转换器匹配。