记一次Content type 'application/json;charset=UTF-8' not supported解决方案

本文记录了解决Spring MVC在接收到Content type 'application/json;charset=UTF-8'请求时出现不支持错误的过程。问题出现在StringHttpMessageConverter无法处理JSON请求,通过添加Jackson依赖并注册JsonMessageConverter到Spring容器中,成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在自己搭建的spring mvc中会抛出如下的异常:

 

发现的controller接口是这样配置的:

 

然后我的postman的请求是这样的:

 

当我怎么修改请求的媒体头类型的时候,这个问题依然存在,虽然程序库顺利的执行到我的代码上,但是却获取不到我从postman提交过来的参数,于是就根据控制台抛出的代码路径跟踪代码,通过debug得出如下图:

 

发现StringHttpMessageConverter这个类根本不能处理我postman的请求方式,而且这个消息转换接口在我的spring配置中只做了如下配置

 

所以我在这个类的同一个jar包中找到了一个可以用来支持json解析的类,

 

就是这个类,具体的一些说明,感兴趣的读者可以打开spring源码查看,需要把这个类注册到spring容器中,如下图:

 

当然了,这个消息转换接口的实现类能够顺利执行,还需要jackson来支持,具体的maven坐标如下:

<dependency>

  <groupId>com.fasterxml.jackson.core</groupId>

  <artifactId>jackson-core</artifactId>

  <version>2.8.3</version>

</dependency>

 

<dependency>

  <groupId>com.fasterxml.jackson.core</groupId>

  <artifactId>jackson-annotations</artifactId>

  <version>2.8.3</version>

</dependency>

 

<dependency>

  <groupId>com.fasterxml.jackson.core</groupId>

  <artifactId>jackson-databind</artifactId>

  <version>2.8.3</version>

</dependency>

 

到此问题就已经解决了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值