錯誤The resource identified by this request is only capable of generating(HTTP Status 406)

NO IMAGE

錯誤The resource identified by this request is only capable of generating(HTTP Status 406)

在使用spring mvc返回json資料時,有時會遇到如下錯誤:

HTTP Status 406 – type Status report message description The resource
identified by this request is only capable of generating responses
with characteristics not acceptable according to the request “accept”
headers.

引發這個錯誤的原因是使用的spring 的版本和Jackson的版本沒有對應上。
解決辦法:
一、如果使用的是spring 4.0.x版本
1、在pom.xml檔案中加入以下程式碼或沒有使用maven的話直接匯入下面兩個包:

    <dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>   

2、在 spring-servlet.xml檔案中加入以下配置:

<!-- 避免IE執行ajax時,返回json出現下載檔案 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 啟動SpringMVC的註解功能,完成請求和註解POJO的對映 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<!-- json轉換器 -->
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>

注:如果報錯的話,可能沒有引入spring的頭依賴,在頭部中加入

xmlns:util="http://www.springframework.org/schema/util"

並在si:schemaLocation=“”中加入

http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd

二、如果使用的是4.1.x版本的spring
1、在pom.xml檔案中加入以下程式碼或沒有使用maven的話直接匯入下面三個包:

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

2、在spring-servlet.xml中加入如下配置:

<!-- 避免IE執行ajax時,返回json出現下載檔案 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean> -->
<!-- 啟動SpringMVC的註解功能,完成請求和註解POJO的對映 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<!-- json轉換器 -->
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>

注:如果報錯的話,可能沒有引入spring的頭依賴,在頭部中加入

xmlns:util="http://www.springframework.org/schema/util"

並在si:schemaLocation=“”中加入

http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd