這幾天由於須要搭建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的配置。不過爲了便於理解我將這兩個都加上。
果真修改之後便可成功經過。