Spring MVC 框架无法找到合适的消息转换器

报错信息如下:

2024-02-02 16:58:29.832 ERROR 15768 --- nio-8080-exec-1 o.a.c.c.C..\[.\[/.dispatcherServlet : Servlet.service() for servlet dispatcherServlet in context with path \[\] threw exception Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: No converter for \[class com.pxl.bg_system.common.Result with preset Content-Type 'text/plain'] with root cause

问题原因:

Spring MVC 框架无法找到合适的消息转换器来处理 返回Result类型的数据。这可能是因为没有正确配置消息转换器或者没有提供适当的转换器来处理该类型的数据。

在默认情况下,Spring MVC 使用 MappingJackson2HttpMessageConverter 来处理将 Java 对象转换为 JSON 格式的操作。但是,如果你的代码中进行了自定义的配置,并且没有包含适当的转换器,就会导致这个错误。

通过配置 MappingJackson2HttpMessageConverter 并将其添加到消息转换器列表中,你为 Spring MVC 提供了一个可用于序列化 Result 对象的转换器,从而解决了这个问题。

所以只需要配置一个 MappingJackson2HttpMessageConverter 转换器来处理 Result 类型的数据。这个转换器可以将 Java 对象序列化为 JSON 格式,并将其包含在响应体中。

import com.fasterxml.jackson.databind.ObjectMapper;

import org.springframework.http.MediaType;

import org.springframework.http.converter.HttpMessageConverter;

import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.List;

@Configuration

public class WebMvcConfig implements WebMvcConfigurer {

@Override

public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

ObjectMapper objectMapper = new ObjectMapper();

MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(objectMapper);

converter.setSupportedMediaTypes(List.of(MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN));

converters.add(converter);

}

}

温馨提示:

一个项目中只会生效一个 继承了 WebMvcConfigurer接口或WebMvcConfiguration类的配置类。

相关推荐
CodeStats5 分钟前
《源纹天书》第121-125章:源匠归来——全栈重构与归元圣域的2.0时代
java·开发语言·源纹天书
AI人工智能+电脑小能手6 分钟前
【大白话说Java面试题 第154题】【06_Spring篇】第14题:Spring 支持的 Bean 作用域
java·开发语言·spring·面试
Evand J10 分钟前
【MATLAB例程】一维非线性状态滤波对比:经典EKF、MCC-EKF、MVC-EKF。在含异常测量的场景下,对比三种滤波方法的估计曲线和误差统计。
matlab·mvc·ekf·滤波·mcc
wuminyu14 分钟前
markword在高并发场景下变化剖析
java·linux·c语言·jvm·c++
组合缺一29 分钟前
用 ChatModel 构建 LLM 驱动的 Java 应用
java·开发语言·ai·llm·solon·rag
zzz_236837 分钟前
【Java实习面试算法冲刺】哈希!
java·算法·面试
带刺的坐椅1 小时前
ReActAgent 使用指南:构建会思考、能行动的 AI Agent
java·ai·llm·solon·loop·react-agent
漂亮的摩托1 小时前
如何编写一个SpringBoot项目告警推送的Starter
java·spring boot·后端
盖伦暴打诺手1 小时前
类比推理知识点
java
ch.ju1 小时前
Java程序设计(第3版)第四章——类加载
java·开发语言