今天在项目中莫名奇妙的出现了Could not find acceptable representation问题,凭借的经验判断是缺少jackson的jar导致,后面发现并不是缺少jar包,然后就开始折腾的解决问题了。。。。
首先要明白这是什么异常,是使用@ResponseBody返回数据需要对数据进行转化(一般情况下都是转化为json格式),然而格式化的时候发现找不到处理该类型的转化器,所以就报异常了。。。
因为我的项目是拦截*.html进入MVC框架的,mvc会判断请求的结尾,如果是html结尾的就以html处理,不会以json的方式处理,问题就在这里!!!
解决方案:
原来的配置:
<servlet-mapping>
<servlet-name>xxxx</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
再原来的配置上再加一个映射规则:
<servlet-mapping>
<servlet-name>xxxx</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
这样就可以实现:
1、保证原来的逻辑正常(返回jsp视图的业务);
2、如果需要后台返回json的,就以 ..../service/xxx/xxxxx 处理。
可以参考下这个帖子:
http://stick2code.blogspot.com/2014/03/solved-orgspringframeworkwebhttpmediaty.html