SpringMVC将对象转化为JSON时406

举报
三分恶 发表于 2021/04/26 01:15:10 2021/04/26
【摘要】 最近跟着做淘淘商城项目的时候,出了这么一个406错误, 这个是Controller中的代码 @RequestMapping("/items/{itemId}") @ResponseBody public TbItem getItemById(@PathVariable long itemId) { TbItem item=itemService.findIt...

最近跟着做淘淘商城项目的时候,出了这么一个406错误,
在这里插入图片描述这个是Controller中的代码

	@RequestMapping("/items/{itemId}")
	@ResponseBody
	public TbItem getItemById(@PathVariable long itemId) {
		TbItem item=itemService.findItemById(itemId);
		return item;
	}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这个是tatao-manager-web中json转换包依赖:

 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.7.3</version> </dependency>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

这个是po类TbItem

public class TbItem { private Long id; private String title; private String sellPoint; private Long price; private Integer num; private String barcode; private String image; private Long cid; private Byte status; private Date created; private Date updated; //省略getter、setter方法

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

注意看一下,这个类现在有一个Date类型的属性created,怀疑问题出在这,
1、改依赖

<!-- jackson相关依赖包 -->
	<dependency>
		<groupId>com.fasterxml.jackson.core</groupId>
		<artifactId>jackson-core</artifactId>
		<version>2.7.4</version>
	</dependency>
	<dependency>
		<groupId>com.fasterxml.jackson.core</groupId>
		<artifactId>jackson-annotations</artifactId>
		<version>2.7.4</version>
	</dependency>
	<dependency>
		<groupId>com.fasterxml.jackson.core</groupId>
		<artifactId>jackson-databind</artifactId>
		<version>2.7.4</version>
	</dependency>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

一个包变成了三个包。
2、改springMVC配置文件

<!-- MappingJackson2HttpMessageConverter处理responseBody 里面日期类型 xsi:schemaLocation引入版本必须大于等于3.1 -->
	<mvc:annotation-driven>
		<mvc:message-converters> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> <property name="objectMapper"> <bean class="com.fasterxml.jackson.databind.ObjectMapper"> <property name="dateFormat"> <bean class="java.text.SimpleDateFormat"> <constructor-arg type="java.lang.String" value="yyyyMMddHHmmss" /> </bean> </property> </bean> </property> </bean>
		</mvc:message-converters>
	</mvc:annotation-driven>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

我的配置文件名叫springmvc.xml,这一段是全局设置json响应的日期格式,还有另外一种方式,可以去看下面的参考。

OK,再跑一下,出来了,
在这里插入图片描述虽然问题解决了,但到底是什么原因导致的,我现在确定不了,以后进一步学习补上。

参考:
【1】、Jackson详解

文章来源: blog.csdn.net,作者:三分恶,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/sinat_40770656/article/details/94736685

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。