spring @responsebody注解不成功 返回406

FuriousPws 发布于 2016/10/14 22:10
阅读 1K+
收藏 1

各位小伙伴好    请教个问题      在使用@responsebody注解的时候    总是返回406错误码    jackson的包也引入了    spring的版本是3.2.0(从原来的4,3,2换成低版本的)    找了各种答案都没有解决    麻烦各位小火伴看看啦   谢谢了   这是错误信息:The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.

加载中
0
RyanMiao
RyanMiao

406是返回值类型错误。你需要看看是否response是json类型。即你返回的不是正确的json。

排查json解析baojackson依赖,返回的类型要有get方法和无参构造函数。

排查是否正确配置了json解析。

debug看返回值的类型是什么样子的。可以参考:https://my.oschina.net/cimu/blog/170110


解决方案:

1. 删除代码中的:

,produces="text/plain;charset=UTF-8"
2. 网络上查找的其它解决方案:

    

<!-- 启动JSON格式的配置 --> <bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <!--解决 HttpMediaTypeNotAcceptableException: Could not find acceptable representation --> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean>

产生此问题的其它原因及解决方法:

1. controller中返回的内容没有get方法,

解决办法:添加get方法;

2. 由于设置了@ResponseBody,要把对象转换成json格式,缺少转换依赖的jar包,故此错。 
解决办法:    加入依赖的jar,jackson-core-asl-1.9.12.jar,jackson-mapper-asl-1.9.12.jar问题解决。

FuriousPws
FuriousPws
你好 非常感谢你的回答 我是返回的一个实体 然后再在方法上面加了@ReseponseBody注解 返回的实体有get/set方法 无参构造器也没有覆盖 我不知道是什么原因
0
半 夏
半 夏
好像是少导包,jackson
FuriousPws
FuriousPws
是的 都导了的 应该不是少包的原因 谢谢你的回答
半 夏
半 夏
回复 @FuriousPws : jackson-core,jackson-databind,jackson-annotations
半 夏
半 夏
有三个jackson包,都导了么?
FuriousPws
FuriousPws
包我都导了呀
0
rabbitgg
rabbitgg
关键的配置没给,关键的类路径下导包的情况也不知道,真不懂怎么回复了
FuriousPws
FuriousPws
你好 非常感谢你的回答 问题已经解决了 是我请求controller时对应的requestmapping中带了后缀htm
0
rabbitgg
rabbitgg
请求时,没设置content-type
FuriousPws
FuriousPws
你好 感谢你的回答 问题解决了 是我请求controller时对应的requestmapping中带了后缀htm 导致解析json不成功
0
m
mzfanggong
不知道如何下手。
FuriousPws
FuriousPws
你好 问题已经解决了 我的controller中对应的requestmapping中带了后缀htm
0
pantrick
pantrick
后台肯定抛异常了,只是楼主不懂怎么看异常就直接来问问题了
FuriousPws
FuriousPws
你好 问题已经解决了 是我请求controller时对应的requestmapping中带了后缀htm 导致解析json出错
0
爱吃烤红薯
爱吃烤红薯
我之前也碰到过这个问题,也是多了后缀不成功,但是我web.xml中配置"/"和"*.htm"都拦截了,为什么带后缀会出错呢,有大神能解答下吗
FuriousPws
FuriousPws
我想应该是htm会当做其他解析
返回顶部
顶部