Spring 4.1.1 RELEASE and @ResponseBody return HTTP 406
Maven pom.xml:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.4.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.4.3</version> </dependency>
and spring mvc config file (eg:spring-mvc.xml)
<mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"/> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> </mvc:message-converters></mvc:annotation-driven>
Got it working after removing Jackson 1.* replacing with the 2.4.4 (JAXRS), which will import all the other dependencies, jackson-core, jackson-databind and jackson-annotations.
Removed
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version></dependency><dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version></dependency>
Added
<dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-base</artifactId> <version>2.4.4</version></dependency>
http://www.codingpedia.org/ama/jquery-ui-autocomplete-not-working-in-spring-4-1/
and in the servlet xml
<mvc:annotation-driven content-negotiation-manager="contentNegotiationManager" /><bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> <property name="favorPathExtension" value="false" /> <property name="favorParameter" value="true" /> <property name="mediaTypes" > <value> json=application/json xml=application/xml </value> </property></bean>
if the jackson annotate is imported in the class files, it should also be replaced
Removed
import org.codehaus.jackson.annotate.JsonIgnoreProperties
Added
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
I was struggling with similar issue migrating from 3.2 to spring 4.2.Was getting
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type:
posting it here so people can find it by exception name :) It took me half a day to find this article. Thanks @Vito and @Aias
Combination of both previous answers work as well, if you do not want register custom contentNegotiationManager
you can do following:
remove all jackson dependencies from
pom.xml
and use latest one
<dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-base</artifactId> <version>2.6.1</version></dependency>
servlet.xml
<mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"/> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> </mvc:message-converters></mvc:annotation-driven>