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类的配置类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/662981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

架构整洁之道-组件构建原则

5 组件构建原则 大型软件系统的架构过程与建筑物修建很类似&#xff0c;都是由一个个小组件组成的。所以&#xff0c;如果说SOLID原则是用于指导我们如何将砖块砌成墙与房间的&#xff0c;那么组件构建原则就是用来指导我们如何将这些房间组合成房子的。 5.1 组件 组件是软件的…

Go语言学习踩坑记

go: go.mod file not found in current directory or any parent directory; see go help mod 解决 资源下载&#xff1a; 序号文件地址1 1、Go IDE liteidex38.3-win64-qt5.15.2.zip Release x38.3 visualfc/liteide GitHub2 2、Go语言的编译环境 go1.21.6.windows-amd64.m…

想好新年去哪了吗?合合信息扫描全能王用AI“留住”年味

还有不到十天&#xff0c;除夕就要到了。近几年春节假期中&#xff0c;有人第一次带着孩子直击海面冰风&#xff0c;坐船回老家&#xff1b;也有人选择“漫游”国内外&#xff0c;在旅行中迎接新春的朝气。合合信息旗下扫描全能王APP通过AI扫描技术&#xff0c;提供了一种全新的…

Acwing---798.差分矩阵

差分矩阵 1.题目2.基本思想3.代码实现 1.题目 输入一个 n n n 行 m m m列的整数矩阵&#xff0c;再输入 q q q 个操作&#xff0c;每个操作包含五个整数 x 1 , y 1 , x 2 , y 2 , c x1,y1,x2,y2,c x1,y1,x2,y2,c&#xff0c;其中 ( x 1 , y 1 ) (x1,y1) (x1,y1) 和 ( x …

51单片机——wifi模块

51单片机——wifi模块 1.AT指令 #include "reg52.h" #include "intrins.h" #include <string.h>#define SIZE 12 sfr AUXR 0x8E; sbit D5 P3^7; char cmd[SIZE];code char LJWL[] "ATCWJAP\"TP-LINK_3E30\",\"18650711783…

美团组织架构调整;微信新安装包突破700MB;《红毯先生》预售总票房破1000万;比亚迪汽车1月销量约20.15万辆

今日精选 • 美团宣布组织架构调整&#xff0c;S-team成员王莆中将统管美团平台、到店到家等核心本地商业业务• 微信新安装包突破700MB• 《红毯先生》预售总票房破1000万• 比亚迪汽车1月销量约20.15万辆 科技动态 • 亚马逊推出生成式AI购物助手Rufus• 前程无忧与阿里云…

C语言中的内存操作函数:memcpy、memcmp与memset

一、memcpy —— 内存拷贝 void * memcpy ( void * destination, const void * source, size_t num ); memcpy函数用于将源内存区域的内容复制到目标内存区域。功能是将从source指向的内存起始位置连续num个字节的数据&#xff0c;原样复制到destination指向的内存区域。 例…

创新大赛专访丨移步到岗荣膺2023年度人力资源服务质量卓越品牌:“人财税法”综合解决方案专家

日前&#xff0c;2023第三届全国人力资源创新大赛颁奖典礼暨成果展圆满举行。自2023年10月份启动以来&#xff0c;大赛共吸引了457个案例报名参赛&#xff0c;经组委会专家团队评审严格审核&#xff0c;企业赛道共有103个案例获奖、72家企业、13位个人、7个产业园斩获荣誉。 广…

RocketMQ消息队列(一)—— 基本概念和消息类型

RocketMQ是一个来自阿里巴巴的分布式消息中间件&#xff0c;于2012年开源&#xff0c;并在2017年正式成为Apache顶级项目。据了解&#xff0c;包括阿里云上的消息产品以及收购的子公司在内&#xff0c;阿里集团的消息产品全线都运行在RocketMQ上&#xff0c;并且最近几年的双十…

mybatis的一级缓存和二级缓存

一、介绍 1、mybatis缓存&#xff1a; mybatis包含一个非常强大的查询缓存特性&#xff0c;可以非常方便的定制和配置缓存&#xff0c;通过缓存减少Java Application与数据库的交互次数&#xff0c;从而提升程序的运行效率。 2、mybatis一二级缓存 mybatis的缓存分为一级缓存…

Docker中配置MySql环境

目录 一、简单安装 1. 首先从Docker Hub中拉取镜像 2. 启动尝试创建MySQL容器&#xff0c;并设置挂载卷。 3. 查看mysql8这个容器是否启动成功 4. 如果已经成功启动&#xff0c;进入容器中简单测试 4.1 进入容器 4.2 登录mysql中 4.3 进行简单添加查找测试 二、主从复…

MySQL-----初识

一 SQL的基本概述 基本概述 ▶SQL全称: Structured Query Language&#xff0c;是结构化查询语言&#xff0c;用于访问和处理数据库的标准的计算机语言。SQL语言1974年由Boyce和Chamberlin提出&#xff0c;并首先在IBM公司研制的关系数据库系统SystemR上实现。 ▶美国国家标…

97 C++对象模型探索。局部静态对象,对象数组构造析构和内存分配

一&#xff0c;局部静态对象的构造和析构 如果我们不调用 静态对象 实例化的函数&#xff0c;则不会触发 静态对象的构造函数 局部静态对象&#xff0c;内存地址是在编译期间就确定好的&#xff0c;且会将内存初始化为0. 局部静态对象只会被构造一次。 局部静态对象的析构是…

MySQL亿级数据的查询优化-历史表该如何建

前端时间在知乎上看到一个问题&#xff0c;今天有空整理并测试了一下&#xff1a; 这个问题很具体&#xff0c;所以还是可以去尝试优化一下&#xff0c;我们基于InnoDB并使用自增主键来讲。 比较简单的做法是将历史数据存放到另一个表中&#xff0c;与最近的数据分开。那是不是…

如何使用Linux Archcraft结合内网穿透实现SSH远程连接

&#x1f4d1;前言 本文主要是使用Linux Archcraft结合内网穿透实现SSH远程连接的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#…

go gin 响应数据

go gin 响应数据 package mainimport ("fmt""github.com/gin-gonic/gin" )type UserInfo struct {UserName string json:"user_name"Age int json:"age"Password string json:"-" }func JsonTest(ctx *gin.Context…

黑马Java——常见API

一、游戏打包exe 游戏打包exe要考虑的因素&#xff1a; 游戏打包exe核心步骤&#xff1a; 详见《打包exe文档》 二、Math &#xff08;一&#xff09; Math类的常用方法 1、代码实现 2、小结

JVM 笔记

JVM HotSpot Java二进制字节码的运行环境 好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;具有垃圾回收功能数组下标越界检查多态&#xff08;虚方法表&#xff09; JVM组成 类加载子系统&#xff08;Java代码转换为字节码&#xff09;运行时数据…

openEuler 22.03 登录提示设置

在openEuler系统中&#xff0c;您可以通过编辑 /etc/motd 文件来设置登录提示信息。motd 是 “Message of the Day” 的缩写&#xff0c;它通常包含当天的提示信息&#xff0c;在用户成功登录到Linux系统后显示。 以下是详细步骤&#xff1a;1、打开终端。2、使用文本编辑器打开…

【JavaEE进阶】 图书管理系统开发日记——贰

文章目录 &#x1f332;前言&#x1f384;设计数据库&#x1f343;引⼊MyBatis和MySQL驱动依赖&#x1f333;Model创建&#x1f38d;约定前后端交互接口&#x1f340;服务器代码&#x1f6a9;控制层&#x1f6a9;业务层&#x1f6a9;数据层 &#x1f334;效果展示⭕总结 &#…