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

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

 

[html] view plain copy

  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这个网址中查出以下配置:

 

[html] view plain copy

  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码要直接的多,更近的接近真相

转载:https://blog.csdn.net/subuser/article/details/19839315

我觉得出现这个问题大部分都是get/set方法不全!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值