Spring MVC + JSON = 406 Not Acceptable
If you're using Maven and the latest Jackson code then you can remove all the Jackson-specific configuration from your spring configuration XML files (you'll still need an annotation-driven tag <mvc:annotation-driven/>) and simply add some Jackson dependencies to your pom.xml file. See below for an example of the dependencies. This worked for me and I'm using:
- Apache Maven 3.0.4 (r1232337; 2012-01-17 01:44:56-0700)
- org.springframework version 3.1.2.RELEASE
spring-security version 3.1.0.RELEASE.
...<dependencies> ... <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.2.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.2.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.2.3</version> </dependency> ... </dependencies>...
One more way you can get this error is to create a class with no public members. 406 unacceptable is a pretty useless error message in this scenario.