这几天由于须要搭建SpringMVC,可是搭建完成之后发现使用@ResponseBody的ajax没法访问,老是出现406的问题。ajax
首先怀疑的是配置问题,通过查明,影响SpringMVC的@ResponseBody注解的是:spring
<mvc:annotation-driven />,我发现个人配置中存在这个注解。同时又使用Spring文档中的自动配置相关解析类的方式再进行测试,发现仍是没有解决问题。mvc
同时在网上找到相关问题,发现是缺失jackson的jar。app
<dependency>因而加上该依赖,但是发现问题仍是没有解决。
测试
而后我就下载当前我使用的Spring版本的官方文档来看。ui
意外发现以下:spa
Spring 4 requires the recent Hibernate Validator 4.3+, and support for Jackson has been focused on 2.0+ now (with Jackson 1.8/1.9 support retained for the time being where Spring 3.2 had it; now just in deprecated form).code
由于我用的是4.1.4的版本,因此已经不支持1.9如下的jackson了。orm
为了测试,我将我spring的版本改回3.2+的版本。发现ajax正常经过。所以又将版本改回,而后把jaskson的版本改成2.5xml
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.0</version>
</dependency>
其实只须要下面的databind便可,由于该配置会自动加上core的配置。不过为了便于理解我将这两个都加上。
果真修改之后便可成功经过。