springMvc中406错误解决,springMvc使用json出现406 (Not Acceptable)

时间:2023-02-05 22:17:50

springMvc中406错误解决,

springMvc使用json出现406 (Not Acceptable)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2015年9月27日 11:38:54 星期日

http://fanshuyao.iteye.com/

一、问题描述:

使用jquery Ajax请求,但页面无提示,后面也没有报错,浏览器控制台输出下面的信息

POST http://localhost:8080/cxf2.7/getPerson.json 406 (Not Acceptable)

其中:

HTTP Status 406 (不接受)

->无法使用请求的内容特性响应请求的网页。

其中网上很多资料都是说supportedMediaTypes需要添加application/json;charset=UTF-8,但依然出现406 (Not Acceptable)

<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
<value>text/xml;charset=UTF-8</value>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

二、解决方法:

原来springMvc使用@ResponseBody,如果返回的是json结果,需要添加jackson的jar包,这点容易忘记

jackson-annotations-2.6.1.jar

jackson-core-2.6.1.jar

jackson-databind-2.6.1.jar

附件有jackson需要的jar包

添加完之后,就能正确返回结果了

{"id":3,"name":"tom","age":13,"insertTime":1443325429417}

三、测试supportedMediaTypes,就算不配置application/json;charset=UTF-8,也可以正常返回结果。

<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<!--
<value>application/json;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
<value>text/xml;charset=UTF-8</value>
<value>text/plain;charset=UTF-8</value>
-->
</list>
</property>

附件有jackson需要的jar包

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2015年9月27日 11:38:54 星期日

http://fanshuyao.iteye.com/