最近跟着做淘淘商城項目的時候,出了這麼一個406錯誤,

@RequestMapping("/items/{itemId}")
@ResponseBody
public TbItem getItemById(@PathVariable long itemId) {
TbItem item=itemService.findItemById(itemId);
return item;
}
這個是tatao-manager-web中json轉換包依賴:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.3</version>
</dependency>
這個是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方法
注意看一下,這個類現在有一個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>
一個包變成了三個包。
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>
我的配置檔案名叫springmvc.xml,這一段是全局設定json響應的日期格式,還有另外一種方式,可以去看下面的參考。
OK,再跑一下,出來了,
雖然問題解決了,但到底是什麼原因導緻的,我現在确定不了,以後進一步學習補上。