org.springframework.web.HttpMediaTypeNotAcceptableException:

From:http://cmzx3444.iteye.com/blog/930732

js代码: 

Java代码     收藏代码
  1. function ajaxLogin() {  
  2.     $.ajax({type:"post" , url: "ajaxLogin.do" , data: "username=acid&password=acid" , success:function (account) {  
  3.         alert("Data Saved: "  + account.username);  
  4.     }});  
  5. }  



Controller中的方法: 

Java代码     收藏代码
  1. @RequestMapping (value =  "/ajaxLogin.do" , method = RequestMethod.POST)  
  2. public   @ResponseBody   
  3. Account ajaxLogin(HttpServletRequest request, @Valid   
  4. Account account, BindingResult result)  
  5. {  
  6.     account = accountService.getAccount(account.getUsername(), account.getPassword());  
  7.     if  (account ==  null )  
  8.     {  
  9.         return   null ;  
  10.     }  
  11.     Utils.setToSession(SessionKey.USER_ID, account.getUsername());  
  12.     return  account;  
  13. }  



结果出现了这个异常: 

Java代码     收藏代码
  1. org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation  
  2.     at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.writeWithMessageConverters(AnnotationMethodHandlerAdapter.java:993 )  
  3.     at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.handleResponseBody(AnnotationMethodHandlerAdapter.java:933 )  
  4.     at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.getModelAndView(AnnotationMethodHandlerAdapter.java:882 )  
  5.     at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:428 )  
  6.     at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414 )  
  7.     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790 )  
  8.     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719 )  
  9.     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644 )  
  10.     at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549 )  
  11.     at javax.servlet.http.HttpServlet.service(HttpServlet.java:617 )  
  12.     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717 )  
  13.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290 )  
  14.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206 )  
  15.     at com.shop.core.context.ContextInitFilter.doFilter(ContextInitFilter.java:33 )  
  16.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235 )  
  17.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206 )  
  18.     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233 )  
  19.     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191 )  
  20.     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127 )  
  21.     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102 )  
  22.     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109 )  
  23.     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298 )  
  24.     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857 )  
  25.     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588 )  
  26.     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489 )  
  27.     at java.lang.Thread.run(Thread.java:662 )  


看了看官方的demo,好像用到了jackson这个包。加上这个包后一切正常! 
原因估计是序列化这个account对象的时候出了问题。因为我直接返回string对象不会出错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation是一个Spring框架中的异常,表示没有可接受的表示形式。这个异常通常在处理HTTP请求时出现,表示服务器无法提供与客户端请求的媒体类型相匹配的响应。 解决这个异常的方法有以下几种: 1. 检查请求头中的Accept字段:这个异常通常是由于客户端请求的媒体类型与服务器支持的媒体类型不匹配导致的。可以通过检查请求头中的Accept字段来确定客户端请求的媒体类型,然后与服务器支持的媒体类型进行比较,确保二者匹配。 2. 检查控制器方法的返回类型:这个异常通常是由于控制器方法返回的数据类型与客户端请求的媒体类型不匹配导致的。可以检查控制器方法的返回类型,确保它与客户端请求的媒体类型相匹配。 3. 使用合适的媒体类型转换器:Spring框架提供了许多媒体类型转换器,用于将控制器方法返回的数据转换为客户端请求的媒体类型。可以使用合适的媒体类型转换器来确保控制器方法返回的数据能够正确地转换为客户端请求的媒体类型。 4. 检查依赖项:这个异常有时也可能是由于缺少必要的依赖项导致的。可以检查项目的依赖项,确保所有必要的依赖项都已正确添加。 以下是一个使用Spring框架解决org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation异常的示例代码: ```java @RestController public class MyController { @GetMapping(value = "/data", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<Data> getData() { // 返回数据 } } ``` 在上面的示例中,使用`produces`属性指定了控制器方法返回的数据类型为JSON,这样就可以确保返回的数据能够正确地转换为客户端请求的媒体类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值