You need to enable JavaScript to run this app. Spring MVC REST服务返回ArrayList时转JSON失败 无对应转换器
优惠活动
大模型
产品
解决方案
定价
更多

Spring MVC REST服务返回ArrayList时转JSON失败 无对应转换器

报错根因

抛出No converter found for return value of type: class java.util.ArrayList的核心原因是Spring MVC的消息转换器列表中,没有注册能够将Java对象、集合类型序列化为JSON的MappingJackson2HttpMessageConverter。哪怕已经引入Jackson依赖,没有正确触发Spring的MVC注解驱动配置时,这套自动注册逻辑不会生效。
这也正好匹配当前现象:Web端视图交互完全正常,只有REST JSON接口报错——因为视图渲染流程不需要消息转换器参与,不会触发对应的校验逻辑,只有@ResponseBody标注的接口在处理返回值时,才会走到消息转换器的匹配流程。

需要补充的修复配置

  • 校验核心配置类WebMvcConfig的注解标识
    目前的WebAppInitializer虽然加载了WebMvcConfig,但如果这个类只是普通的@Configuration,没有添加@EnableWebMvc注解,Spring MVC就不会自动装配默认的消息转换器集合。
    @EnableWebMvc注解的作用等价于XML配置时代的<mvc:annotation-driven/>,会自动检测classpath下的Jackson库,完成JSON消息转换器的自动注册。注意不要让WebMvcConfig继承WebMvcConfigurationSupport后又没有覆盖对应转换器配置,同样会导致自动装配逻辑失效。
  • 补全Jackson依赖的完整链路
    当前pom只引入了jackson-core和jackson-databind,显式补充同版本的jackson-annotations依赖,避免类加载缺失导致转换器初始化失败:
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.11.3</version>
    </dependency>
    
  • 校验Controller层的注解使用
    从错误栈可以判断接口已经走到了@ResponseBody的处理逻辑,不需要额外调整注解,但需要确认:如果是普通@Controller标注的类,返回JSON的方法不能遗漏@ResponseBody;如果使用@RestController标注类,不需要在每个方法上重复加@ResponseBody,因为它已经聚合了@Controller和@ResponseBody的语义。
  • 兜底配置:手动显式注册消息转换器
    如果添加@EnableWebMvc后问题仍未解决,可以在WebMvcConfig实现WebMvcConfigurer接口,重写配置方法手动注册Jackson转换器:
    @Configuration
    @EnableWebMvc
    public class WebMvcConfig implements WebMvcConfigurer {
        @Override
        public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
            // 注册Jackson JSON序列化转换器
            MappingJackson2HttpMessageConverter jacksonConverter = new MappingJackson2HttpMessageConverter();
            jacksonConverter.setObjectMapper(new ObjectMapper());
            converters.add(jacksonConverter);
            // 保留基础类型的内置转换器
            converters.add(new StringHttpMessageConverter());
            converters.add(new ByteArrayHttpMessageConverter());
        }
    }
    

内容的提问来源于stack exchange,提问作者Avishek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 08:54:03