关于Spring3 MVC的 HttpMediaTypeNotSupportedException
2013-02-01 16:35
721 查看
使用框架:Spring3 MVC + dojo1.8
前提:配置Spring MVC以JSON数据形式响应请求
使用场景:dojo向Spring MVC发送ajax请求
异常信息:
原因: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块:
问题解决。
参考:stackover
前提:配置Spring MVC以JSON数据形式响应请求
使用场景:dojo向Spring MVC发送ajax请求
异常信息:
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported at 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
- org.springframework.web.HttpMediaTypeNotSupportedException: Unsupported Media Type, status=415
- 在Spring Cloud框架整合微服务时出现的org.springframework.web.HttpMediaTypeNotSupportedException异常问题
- spring boot HttpMediaTypeNotSupportedException
- springmvc @ResponseBody HttpMediaTypeNotAcceptableException
- ajax使用向Spring MVC发送JSON数据出现 org.springframework.web.HttpMediaTypeNotSupportedException: Content type
- org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
- org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representatio
- org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representatio
- org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representatio
- org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representatio
- spring 4 异常HttpMediaTypeNotAcceptableException解决方案
- HttpMediaTypeNotSupportedException
- HttpMediaTypeNotSupportedException: Content type 'application/json;' not supported 问题原因之一
- org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported
- org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'java.la
- org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported
- Spring Boot: HttpMediaTypeNotAcceptableException: Could not find acceptable representation原因及解决方法
- org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported解决!
- org.springframework.web.HttpRequestMethodNotSupportedException: Request method