今天在调试springMVC的时候,在将一个对象返回为json串的时候,浏览器中出现异常:

The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers ().

从网上查了下,说是让配置下json转化bean:

  1. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
  2. <property name="messageConverters">
  3. <list>
  4. <ref bean="mappingJacksonHttpMessageConverter" />
  5. </list>
  6. </property>
  7. </bean>
  8. <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
  9. <property name="supportedMediaTypes">
  10. <list>
  11. <value>application/json;charset=UTF-8</value>
  12. </list>
  13. </property>
  14. </bean>

配置完运行后还是报上述错误。
应该不是配置原因,从http://forum.spring.io/forum/spring-projects/web/82137-spring-3-and-ajax这个网址中查出以下配置:

  1. <bean id="messageAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
  2. <property name="messageConverters">
  3. <list>
  4. <!-- Support JSON -->
  5. <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
  6. </list>
  7. </property>
  8. </bean>
  9. <bean id="exceptionMessageAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver">
  10. <property name="messageConverters">
  11. <list>
  12. <!-- Support JSON -->
  13. <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
  14. </list>
  15. </property>
  16. </bean>

其中第一个和之前的配置没有什么差别,但是第二个exceptionMessageAdapter,这个是处理转化json异常的适配器(这个配置对于调试查找问题还是非常有用的)。

当用这个配置替换上面的配置时,浏览器报了如下异常:

org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation

经查,在http://blog.csdn.net/xplizm/article/details/8205882这篇博文中,提到出现这个问题的原因是因为,@ResponseBody返回的对象中的属性缺少set\get方法。
将返回对象加上set\get方法后,一切ok。

这是xplizm的博文中的总结:

开始总以为是Content-Type或者Accept属性有问题,但找了半天原因才发现这里有个基本的要求:POJO对象要转成Json,则要求POJO中的属性必须都有getter方法,加上getter方法后就正常了 :)

ps:

1.当最后调试正确后,我把上述的配置都注释掉,并加上下面这两个配置:

<context:annotation-config />  
    <mvc:annotation-driven />

发现也可以正常使用。这说明,可以使用上面的两个简单说明就可以使用springMVC的@ResponseBody注解,并返回json串。

2. 调试配置也是很重要的,调试时报出的异常要比tomcat直接返回的406码要直接的多,更近的接近真相

SpringMVC_The resource identified by this request is only capable of generating responses with characteristics的更多相关文章

  1. The resource identified by this request is only capable of generating responses with characteristics

    [转]今天在调试springMVC的时候,在将一个对象返回为json串的时候,浏览器中出现异常: The resource identified by this request is only cap ...

  2. 解决The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.

    SpringMVC中当在浏览器中输入对应的MappingUrl时,报The resource identified by this request is only capable of generat ...

  3. 浏览器报406 错误:The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers

    The resource identified by this request is only capable of generating responses with characteristics ...

  4. 【406错误】 The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.

    今天遇到一个奇怪的错误,关于Springmvc的,我明明在Controller方法中写了@ResponseBody,返回一个Map,结果报了406错误. 结果发现,少了一个jar包: 加上去就没事了.

  5. ztree插件异步加载 使用RESTEasy报错 Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.

    在使用ztree插件实现异步加载时遇到后台RESTEasy接收参数问题,查看后台报错: A servlet request to the URI http://localhost:8080/area/ ...

  6. SpringMVC下Ajax请求的方法,@Responsebody如果返回的是布尔值,ajax不会接到任何回传数据

    SpringMVC框架下,如果用ajax向后台请求得方法如果使用@Responsebody返回布尔值的话,ajax得不到任何的回传数据. 但是如果返回String类型,就是正常的. 测试了下代码写得没 ...

  7. POSTMAN发起请求收到乱码 http 406错误

    web前段异常: The resource identified by this request is only capable of generating responses with charac ...

  8. springmvc整合fastjson

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  9. @ResponseBody返回不能正确接收

    Spring-MVC中@ResponseBody返回Bean到前台接收这么一串代码,还套着HTML标签: The resource identified by this request is only ...

随机推荐

  1. Html form 表单提交前验证

    可以使用form表单的onsubmit方法,在提交表单之前,对表单或者网页中的数据进行检验. onsubmit指定的方法返回true,则提交数据:返回false不提交数据. 直接看下面的代码: 1 & ...

  2. ecshop的商品系统数据库整合

    -- 表的结构 `ecs_shop_config` '全站配置信息表'  商店设置   `id`   '全站配置信息自增id',`parent_id`  '父节点id,取值于该表id字段的值',`co ...

  3. What is the difference between provider network and self-service network in OpenStack?

    "self-service networking" allows users to create their own virtual networks, subnets, rout ...

  4. 【OpenStack】OpenStack系列10之Horizon详解

    一.参考其他资料即可.可以采用haproxy+apache+horizon方式部署,haproxy/httpd支持ssl.

  5. svn 切换默认用户名

    2015年1月19日 15:37:30\ 原文: http://www.2cto.com/os/201307/229325.html linux svn切换用户   1. 临时切换   在所有命令下强 ...

  6. 在一个JSP页面中包含另一个JSP页面的三种方式

    转载自://http://blog.163.com/neu_lxb/blog/static/179417010201121343132918/ (1)include指令          includ ...

  7. CSS备忘

    垂直居中:           先height再ling-height,都设成一样高 span 垂直居中:vertical-align:50%设置外边距:           margin-top,m ...

  8. LINUX_source

    Be careful! ./ and source are not quite the same. ./script runs the script as an executable file, la ...

  9. Andorid中的HAL

    参考文章: http://blog.csdn.net/luoshengyang/article/details/6567257

  10. sybase ASE 12.5版本下载地址

    为便于广大爱好者方便 学习Sybase ASE数据库,我将windows平台下的(32位)Sybase ASE放到下面的位置: ASE 12.5: (8个包) http://download.csdn ...