Spring MVC + JSON : fixing error 406 (Not Acceptable)


This may happen while using Spring controllers like this:

  1. @RequestMapping(value = "/getbirds", method = RequestMethod.GET, produces = "application/json")
  2.     public @ResponseBody
  3.     List<Bird> getBirds(@RequestParam("term") String term) {
  4. List<Bird> lst;
  5. //..........
  6. return lst;
  7. }


@ResponseBody annotations don't use normal view resolvers, they use their own.Put this in your dispatcher-servlet:
  1. <bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
  2. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
  3. <property name="messageConverters">
  4. <list>
  5. <ref bean="jacksonMessageConverter"/>
  6. </list>
  7. </property>
  8. </bean>

You may need to put this dependency in your pom.xml:
  1. <dependency>
  2.             <groupId>org.codehaus.jackson</groupId>
  3.             <artifactId>jackson-mapper-asl</artifactId>
  4.             <version>1.8.0</version>
  5.         </dependency>

Similar Posts:

No comments:

Post a Comment