You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非Spring Boot项目升级Spring5.3.20时Jackson报错解决方案

报错原因

编译异常由两处版本不兼容问题共同导致:

  • Spring 5.x 已彻底移除适配Jackson 1.x(org.codehaus.jackson 包路径)的MappingJacksonHttpMessageConverter,统一使用适配Jackson 2.x(com.fasterxml.jackson 包路径,即jackson-databind对应的官方实现)的MappingJackson2HttpMessageConverter。
  • Jackson 1.x升级到2.x时全量更换了顶层包名,原序列化配置的枚举类也做了拆分,路径和归属都有调整。
正确替换方案

首先替换旧的导入语句,移除所有codehaus包下的Jackson相关导入,替换为以下2.x版本导入:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;

目标代码段修正后完整写法如下:

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    MappingJackson2HttpMessageConverter mappingJacksonHttpMessageConverter = new MappingJackson2HttpMessageConverter();

    ObjectMapper defaultMapper = new ObjectMapper();
    defaultMapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);
    defaultMapper.configure(SerializationFeature.REQUIRE_SETTERS_FOR_GETTERS, true);
    mappingJacksonHttpMessageConverter.setObjectMapper(defaultMapper);

    converters.add(mappingJacksonHttpMessageConverter);
}
注意事项

以上配置和原有代码的运行逻辑完全一致,不需要额外调整其他参数即可对齐旧版本的序列化行为。

内容的提问来源于stack exchange,提问作者Jeff Cook。

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 21:54:20