关于springMVC 4.x配置ajax-json 出现406错误的问题。
来源:互联网 发布:c语言中玫瑰花数 编辑:程序博客网 时间:2024/05/23 18:22
一,问题来源:
昨天晚上在搭建ssm框架时,进行到了配置springMVC支持ajax-json的步骤,按照以前做过的springMVC 3.x 框架进行配置。测试访问时,出现了这样的问题。
二,问题分析:
1,检查Controller中的方法是否添加@ResponseBody。(已添加)
2,检查ajax函数是否没写dataType:’json’。(写上了)
3,检查springMVC.xml关于支持返回json数据的处理。(写上了)
<!-- 处理请求response返回值,如下配置能正确返回字符串型返回值,如返回值为对象,则自动转为json --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json; charset=UTF-8</value> <value>text/html; charset=UTF-8</value> </list> </property> </bean> <bean id="mappingStringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter" /> <bean id="handleAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 --> </list> </property> </bean>
5,又检查了jackson的jar是否添加(已经添加)。
那么问题在哪里呢?
三,深入分析:
通过查阅资料,发现:
1,springMVC3.x 和springMVC4.x所依赖的jackson的jar包有所变更:
3.x:
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-lgpl</artifactId> <version>1.8.1</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-lgpl</artifactId> <version>1.8.1</version> </dependency>
4.x:将使用全新的jackson-annotations-2.5.0.jar,jackson-core-2.5.0.jar,jackson-databind-2.5.0.jar 原有的jar不再使用
<dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-xml-provider</artifactId> <version>2.5.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.5.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.5.2</version> </dependency>
2:仔细检查发现:springMVC.xml头文件上的xsi:schemaLocation里版本显示的还是3.x,这里手动改成4.x。
3:spring4.x关于json的配置方式有所变更(重点)
3.x:
<mvc:annotation-driven /> <!-- 处理请求response返回值,如下配置能正确返回字符串型返回值,如返回值为对象,则自动转为json --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json; charset=UTF-8</value> <value>text/html; charset=UTF-8</value> </list> </property> </bean> <bean id="mappingStringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter" /> <bean id="handleAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 --> </list> </property> </bean>
4.x :
<mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"/> <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> <property name="favorPathExtension" value="false" /> </bean> <bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean> <bean id="stringConverter" class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="stringConverter" /> <ref bean="jsonConverter" /> </list> </property> </bean>
四,问题解决:
通过修改以上配置信息后,问题解决。
五,分析总结:
1,头文件信息要与使用的spring版本一致。
2,spring3MVC和spring4MVC对于 处理返回json 所使用的jar包不同。
3,spring3MVC和spring4MVC 对于springMVC.xml中对于处理返回json配置方式不同。
六,感谢:
http://www.zuidaima.com/question/2051293900327936.htm
这里帮我找到了答案。
- 关于springMVC 4.x配置ajax-json 出现406错误的问题。
- Ajax请求SpringMVC出现406的错误
- 关于springmvc 处理ajax返回json数据格式的问题
- 关于springmvc引用json配置会报错的问题
- 关于mac x lion安装xcode出现错误的问题
- 关于springMVC转换json出现的异常
- springmvc+easyui Ajax提交返回json IE出现下载问题
- SpringMVC 4.x输出JSON数据配置
- Springmvc 4.x使用@ResponseBody出现406问题
- 关于SpringMVC配置的问题
- 关于springmvc的配置问题
- SpringMVC通过Ajax获取JSON数据报406错误
- Maven+SpringMVC+Hibernate+ajax:用ajax传递json到前台中文出现问号乱码问题
- SpringMVC ajax传递json数组到后台报406错误的解决办法
- 配置springMVC时出现的问题
- 关于jquery-ajax返回json的问题
- jquery的ajax返回json数据出现parseerror错误
- 关于springMVC在配置了json时 静态文件无法访问的问题
- tableview
- MYSQL 定时任务调用存储过程
- android 网络请求遇到的坑:connect failed: EHOSTUNREACH (No route to host)
- 标准输入、标准输出、标准出错:
- eclipse自定义扩展点
- 关于springMVC 4.x配置ajax-json 出现406错误的问题。
- poj1442blacks boxs【treap树】
- 多核平台下的JAVA优化
- ViewPager onPageChangeListener中要实现的3个方法!
- 手动获取系统当前的语言环境
- 正则表达式规则
- Python 全栈开发 -- 监控篇
- 并查集详解 (转)
- mysql中,与日期相关的函数