关于Spring3 MVC的 HttpMediaTypeNotSupportedException
来源:互联网 发布:长板空间 淘宝 编辑:程序博客网 时间:2024/06/10 17:44
使用框架:Spring3 MVC + dojo1.8
前提:配置Spring MVC以JSON数据形式响应请求
使用场景:dojo向Spring MVC发送ajax请求
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supportedat org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:124)at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:91)at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:71)at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:75)at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:156)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:117)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:790)at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:89)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:463)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:564)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:120)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:909)at java.lang.Thread.run(Thread.java:619)
原因:dojo1.8默认发送的ajax请求类型为'application/x-www-form-urlencoded;charset=UTF-8',但是Spring MVC使用的是‘application/json’,所以需要在dojo的ajax请求中改成'Content-Type' : 'application/json;charset=utf-8',如下代码headers块:
require([ "dojo/request/xhr", "dojo/json" ], function(xhr) {var userInfo = {"userName" : user.value,"password" : passwd.value};xhr.post("/SpringMVCRestful/login", {data : JSON.stringify(userInfo),//query: JSON.stringify(userInfo), //加这个会在url显示参数sync : true,handleAs : "json",timeout : 200000,headers : {'Content-Type' : 'application/json;charset=utf-8'}}).then(function(response) {alert(response);}, function(err) {alert("err:" + err);});});
问题解决。
参考:stackover
- 关于Spring3 MVC的 HttpMediaTypeNotSupportedException
- 关于Spring3 MVC的 HttpMediaTypeNotSupportedException
- HttpMediaTypeNotSupportedException
- 搭建spring3 的mvc开发
- Spring3-MVC的基本配置
- 关于ssm通过ajax来进行数据交互出现的错误:org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'ap
- spring3 mvc
- Spring3 MVC
- Spring3 MVC
- Spring3 MVC
- Spring3 MVC
- Spring3 MVC
- spring3 mvc
- 组建Jquery+Spring3 MVC架构的尝试
- spring mvc + spring3整合mybatis3的demo!!!
- 解决spring3 mvc中乱码的问题。
- 组建Jquery+Spring3 MVC架构的尝试
- 解决spring3 mvc中乱码的问题。
- framework: Split off some packages to a new file
- Cocos2dx---------------------添加Admob广告
- 网页编码格式
- 通过复制-粘贴的方式将文件从本地上传到服务器上
- ExtJs处理URL传参特殊字符(+/?#...)
- 关于Spring3 MVC的 HttpMediaTypeNotSupportedException
- 如何养成不生气的习惯
- Uboot之一:BootLoader的概念
- 获取系统时间
- javascrip语句基础(1)
- 我用过的计算机编程语言
- 时间格式校验
- NoSQL技术详解
- gdb命令杂集