Spring 3.0 making JSON response using jackson message converter

Viewed 69057

i configure my messageconverter as Jackson's then

class Foo{int x; int y}

and in controller

@ResponseBody
public Foo method(){
   return new Foo(3,4)
}

from that i m expecting to return a JSON string {x:'3',y:'4'} from server without any other configuration. but getting 404 error response to my ajax request

If the method is annotated with @ResponseBody, the return type is written to the response HTTP body. The return value will be converted to the declared method argument type using HttpMessageConverters.

Am I wrong ? or should I convert my response Object to Json string myself using serializer and then returning that string as response.(I could make string responses correctly) or should I make some other configurations ? like adding annotations for class Foo

here is my conf.xml

<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">

  <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
  <list>
    <ref bean="jacksonMessageConverter"/>
  </list>
</property>

8 Answers

A HTTP 404 error just means that the resource cannot be found. That can have 2 causes:

  1. Request URL is wrong (client side error or wrong URL in given link/button).
  2. Resource is not there where you expect it is (server side error).

To fix 1, ensure you're using or providing the correct request URL (casesensitive!). To fix 2, check the server startup logs for any startup errors and fix them accordingly.

This all goes beyond the as far posted code and information.

This is just a guess, but by default Jackson only auto-detects public fields (and public getters; but all setters regardless of visibility). It is possible to configure this (with version 1.5) to also auto-detect private fields if that is desired (see here for details).

Related