spring mvc返回json could not find acceptable representation

上周用spring mvc 写接口,使用的是3.2.8版本,调试出现could not find acceptable representation错误,网上都是说缺乏那两个json包,我已经加上了。尝试了不少办法都没有解决(主要是在配置文件上折腾了好久),最后不得不去debug源码。html

在AbstractMessageConverterMethodProcessor中java

for (MediaType r : requestedMediaTypes) {
			for (MediaType p : producibleMediaTypes) {
				if (r.isCompatibleWith(p)) {
					compatibleMediaTypes.add(getMostSpecificMediaType(r, p));
				}
			}
		}

requestedMediaTypes返回的是text/htmlspring

而后json

if (compatibleMediaTypes.isEmpty()) {
			throw new HttpMediaTypeNotAcceptableException(producibleMediaTypes);
		}

就抛了错误,接着去对比以前一个项目,这个项目的spring mvc版本和如今的版本一致,只是底层有些东西不同,发现这个项目返回的是*/*。mvc

后来通过研究是这两个项目请求的后缀不同,这个项目的后缀是.htm,以前的没有后缀,接着把xml里的拦截后缀也改为/就成功返回json了。.net

http://blog.csdn.net/gbtyy/article/details/17165605 这篇讲的很详细,能够看看。debug

这个问题真是搞了很久,以前就想把.htm改为/的,一直懒的改,还有早点去看源码就行了,都不会耽误这么长时间。。。调试

相关文章
相关标签/搜索