org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.springframework.format.support.DefaultFormattingConversionService and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: org.springframework.validation.support.BindingAwareModelMap["org.springframework.validation.BindingResult.testBean"]->org.springframework.validation.BeanPropertyBindingResult["propertyAccessor"]->org.springframework.beans.BeanWrapperImpl["conversionService"])

Spring JIRA | Tim Schmelter | 6 years ago
  1. 0

    I'm not sure whether this is a misconfiguration on my part, a misunderstanding of what can be accomplished via {{@ModelAttribute}} and automatic JSON content conversion, or a bug in either Spring or Jackson. If it turns out to be Jackson, of course, I'll file an issue with the appropriate folks. I've encountered a problem with adding a {{@ModelAttribute}} to a controller's handler method. The intent of the method is to expose a bean that's been populated from a form or previous submission, but I can reproduce the issue without actually submitting data into the bean via a web interaction. To get the simplest possible environment in which to reproduce, I'm using the Spring mvc-showcase sample. It's currently using Spring 3.1, but I first encountered, and am able to reproduce, this issue on my project's 3.0.5 setup. As you're probably aware, the mvc-showcase sample uses a pretty standard servlet-context.xml: {code:title=servlet-context.xml} <?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xsi:schemaLocation=" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure --> <!-- Enables the Spring MVC @Controller programming model --> <annotation-driven conversion-service="conversionService"> <argument-resolvers> <beans:bean class="org.springframework.samples.mvc.data.custom.CustomArgumentResolver"/> </argument-resolvers> </annotation-driven> <!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources/ directory --> <resources mapping="/resources/**" location="/resources/" /> <!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory --> <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <beans:property name="prefix" value="/WEB-INF/views/" /> <beans:property name="suffix" value=".jsp" /> </beans:bean> <!-- Imports user-defined @Controller beans that process client requests --> <beans:import resource="controllers.xml" /> <!-- Only needed because we install custom converters to support the examples in the org.springframewok.samples.mvc.convert package --> <beans:bean id="conversionService" class="org.springframework.samples.mvc.convert.CustomConversionServiceFactoryBean" /> <!-- Only needed because we require fileupload in the org.springframework.samples.mvc.fileupload package --> <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" /> </beans:beans> {code} ---- The default {{controllers.xml}} referenced in the file simply sets up the relevant component-scan and view-controller for the root path. The relevant snippet is below. {code:title=controllers.xml} <!-- Maps '/' requests to the 'home' view --> <mvc:view-controller path="/" view-name="home"/> <context:component-scan base-package="org.springframework.samples.mvc" /> {code} ---- The test bean which I am attempting to deliver is a dead-simple POJO. {code:title=TestBean.java} package org.springframework.samples.mvc.test; public class TestBean { private String testField = "test@example.com"; public String getTestField() { return testField; } public void setTestField(String testField) { this.testField = testField; } } {code} ---- And finally, the controller, which is also simple. {code:title=TestController.java} package org.springframework.samples.mvc.test; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping("test/*") public class TestController { @ModelAttribute("testBean") public TestBean getTestBean() { return new TestBean(); } @RequestMapping(value = "beanOnly", method = RequestMethod.POST) public @ResponseBody TestBean testBean(@ModelAttribute("testBean") TestBean bean) { return bean; } @RequestMapping(value = "withoutModel", method = RequestMethod.POST) public @ResponseBody Model testWithoutModel(Model model) { model.addAttribute("result", "success"); return model; } @RequestMapping(value = "withModel", method = RequestMethod.POST) public @ResponseBody Model testWithModel(Model model, @ModelAttribute("testBean") TestBean bean) { bean.setTestField("This is the new value of testField"); model.addAttribute("result", "success"); return model; } } {code} ---- If I call the controller via the mapped path {{/mvc-showcase/test/beanOnly}}, I get a JSON representation of the bean, as expected. Calling the {{withoutModel}} handler delivers a JSON representation of the Spring {{Model}} object associated with the call. It includes the implicit {{@ModelAttribute}} from the initial declaration in the return value, but the bean is unavailable to the method. If I wish to process the results of a form submission, for example, and return a JSON response message, then I need that attribute. The last method adds the {{@ModelAttribute}}, and this is where the trouble comes up. Calling {{/mvc-showcase/test/withModel}} causes an exception. In my 3.0.5 installation, I get a JsonMappingException caused by a lack of serializer for FormattingConversionService. In the 3.1.0 sample, the exception is caused by lack of serializer for DefaultConversionService. I'll include the 3.1 exception here; it seems to have the same root cause, even if the path is a bit different. {code:title=3.1 org.codehaus.jackson.map.JsonMappingException} org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.springframework.format.support.DefaultFormattingConversionService and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: org.springframework.validation.support.BindingAwareModelMap["org.springframework.validation.BindingResult.testBean"]->org.springframework.validation.BeanPropertyBindingResult["propertyAccessor"]->org.springframework.beans.BeanWrapperImpl["conversionService"]) at org.codehaus.jackson.map.ser.StdSerializerProvider$1.failForEmpty(StdSerializerProvider.java:89) at org.codehaus.jackson.map.ser.StdSerializerProvider$1.serialize(StdSerializerProvider.java:62) at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:272) at org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:175) at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:147) at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:272) at org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:175) at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:147) at org.codehaus.jackson.map.ser.MapSerializer.serializeFields(MapSerializer.java:207) at org.codehaus.jackson.map.ser.MapSerializer.serialize(MapSerializer.java:140) at org.codehaus.jackson.map.ser.MapSerializer.serialize(MapSerializer.java:22) at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:315) at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:242) at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1030) at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.writeInternal(MappingJacksonHttpMessageConverter.java:153) at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:181) at org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:121) at org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:101) at org.springframework.web.servlet.mvc.method.annotation.support.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:81) at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:64) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMethodAdapter.invokeHandlerMethod(RequestMappingHandlerMethodAdapter.java:505) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMethodAdapter.handleInternal(RequestMappingHandlerMethodAdapter.java:468) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at ... {code} So, is there some configuration I am missing that should allow the Jackson converter to properly handle a response derived from a handler with {{@ModelAttribute}} in the method signature?

    Spring JIRA | 6 years ago | Tim Schmelter
    org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.springframework.format.support.DefaultFormattingConversionService and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: org.springframework.validation.support.BindingAwareModelMap["org.springframework.validation.BindingResult.testBean"]->org.springframework.validation.BeanPropertyBindingResult["propertyAccessor"]->org.springframework.beans.BeanWrapperImpl["conversionService"])
  2. 0

    I'm not sure whether this is a misconfiguration on my part, a misunderstanding of what can be accomplished via {{@ModelAttribute}} and automatic JSON content conversion, or a bug in either Spring or Jackson. If it turns out to be Jackson, of course, I'll file an issue with the appropriate folks. I've encountered a problem with adding a {{@ModelAttribute}} to a controller's handler method. The intent of the method is to expose a bean that's been populated from a form or previous submission, but I can reproduce the issue without actually submitting data into the bean via a web interaction. To get the simplest possible environment in which to reproduce, I'm using the Spring mvc-showcase sample. It's currently using Spring 3.1, but I first encountered, and am able to reproduce, this issue on my project's 3.0.5 setup. As you're probably aware, the mvc-showcase sample uses a pretty standard servlet-context.xml: {code:title=servlet-context.xml} <?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xsi:schemaLocation=" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure --> <!-- Enables the Spring MVC @Controller programming model --> <annotation-driven conversion-service="conversionService"> <argument-resolvers> <beans:bean class="org.springframework.samples.mvc.data.custom.CustomArgumentResolver"/> </argument-resolvers> </annotation-driven> <!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources/ directory --> <resources mapping="/resources/**" location="/resources/" /> <!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory --> <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <beans:property name="prefix" value="/WEB-INF/views/" /> <beans:property name="suffix" value=".jsp" /> </beans:bean> <!-- Imports user-defined @Controller beans that process client requests --> <beans:import resource="controllers.xml" /> <!-- Only needed because we install custom converters to support the examples in the org.springframewok.samples.mvc.convert package --> <beans:bean id="conversionService" class="org.springframework.samples.mvc.convert.CustomConversionServiceFactoryBean" /> <!-- Only needed because we require fileupload in the org.springframework.samples.mvc.fileupload package --> <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" /> </beans:beans> {code} ---- The default {{controllers.xml}} referenced in the file simply sets up the relevant component-scan and view-controller for the root path. The relevant snippet is below. {code:title=controllers.xml} <!-- Maps '/' requests to the 'home' view --> <mvc:view-controller path="/" view-name="home"/> <context:component-scan base-package="org.springframework.samples.mvc" /> {code} ---- The test bean which I am attempting to deliver is a dead-simple POJO. {code:title=TestBean.java} package org.springframework.samples.mvc.test; public class TestBean { private String testField = "test@example.com"; public String getTestField() { return testField; } public void setTestField(String testField) { this.testField = testField; } } {code} ---- And finally, the controller, which is also simple. {code:title=TestController.java} package org.springframework.samples.mvc.test; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping("test/*") public class TestController { @ModelAttribute("testBean") public TestBean getTestBean() { return new TestBean(); } @RequestMapping(value = "beanOnly", method = RequestMethod.POST) public @ResponseBody TestBean testBean(@ModelAttribute("testBean") TestBean bean) { return bean; } @RequestMapping(value = "withoutModel", method = RequestMethod.POST) public @ResponseBody Model testWithoutModel(Model model) { model.addAttribute("result", "success"); return model; } @RequestMapping(value = "withModel", method = RequestMethod.POST) public @ResponseBody Model testWithModel(Model model, @ModelAttribute("testBean") TestBean bean) { bean.setTestField("This is the new value of testField"); model.addAttribute("result", "success"); return model; } } {code} ---- If I call the controller via the mapped path {{/mvc-showcase/test/beanOnly}}, I get a JSON representation of the bean, as expected. Calling the {{withoutModel}} handler delivers a JSON representation of the Spring {{Model}} object associated with the call. It includes the implicit {{@ModelAttribute}} from the initial declaration in the return value, but the bean is unavailable to the method. If I wish to process the results of a form submission, for example, and return a JSON response message, then I need that attribute. The last method adds the {{@ModelAttribute}}, and this is where the trouble comes up. Calling {{/mvc-showcase/test/withModel}} causes an exception. In my 3.0.5 installation, I get a JsonMappingException caused by a lack of serializer for FormattingConversionService. In the 3.1.0 sample, the exception is caused by lack of serializer for DefaultConversionService. I'll include the 3.1 exception here; it seems to have the same root cause, even if the path is a bit different. {code:title=3.1 org.codehaus.jackson.map.JsonMappingException} org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.springframework.format.support.DefaultFormattingConversionService and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: org.springframework.validation.support.BindingAwareModelMap["org.springframework.validation.BindingResult.testBean"]->org.springframework.validation.BeanPropertyBindingResult["propertyAccessor"]->org.springframework.beans.BeanWrapperImpl["conversionService"]) at org.codehaus.jackson.map.ser.StdSerializerProvider$1.failForEmpty(StdSerializerProvider.java:89) at org.codehaus.jackson.map.ser.StdSerializerProvider$1.serialize(StdSerializerProvider.java:62) at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:272) at org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:175) at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:147) at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:272) at org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:175) at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:147) at org.codehaus.jackson.map.ser.MapSerializer.serializeFields(MapSerializer.java:207) at org.codehaus.jackson.map.ser.MapSerializer.serialize(MapSerializer.java:140) at org.codehaus.jackson.map.ser.MapSerializer.serialize(MapSerializer.java:22) at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:315) at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:242) at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1030) at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.writeInternal(MappingJacksonHttpMessageConverter.java:153) at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:181) at org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:121) at org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:101) at org.springframework.web.servlet.mvc.method.annotation.support.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:81) at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:64) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMethodAdapter.invokeHandlerMethod(RequestMappingHandlerMethodAdapter.java:505) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMethodAdapter.handleInternal(RequestMappingHandlerMethodAdapter.java:468) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at ... {code} So, is there some configuration I am missing that should allow the Jackson converter to properly handle a response derived from a handler with {{@ModelAttribute}} in the method signature?

    Spring JIRA | 6 years ago | Tim Schmelter
    org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.springframework.format.support.DefaultFormattingConversionService and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: org.springframework.validation.support.BindingAwareModelMap["org.springframework.validation.BindingResult.testBean"]->org.springframework.validation.BeanPropertyBindingResult["propertyAccessor"]->org.springframework.beans.BeanWrapperImpl["conversionService"])
  3. 0

    Spring 3.0.5 - Adding @ModelAttribute to handler method signature results in JsonMappingException

    Stack Overflow | 6 years ago | Palpatim
    org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.springframework.format.support.DefaultFormattingConversionService and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: org.springframework.validation.support.BindingAwareModelMap["org.springframework.validation.BindingResult.testBean"]-&gt;org.springframework.validation.BeanPropertyBindingResult["propertyAccessor"]-&gt;org.springframework.beans.BeanWrapperImpl["conversionService"])
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    Solution for JsonMappingException: lazily initialize a collection without using @Jsonignore

    Stack Overflow | 1 year ago | Romeo
    org.codehaus.jackson.map.JsonMappingException: failed to lazily initialize a collection of role: com.sublime.np.entity.User.roles, could not initialize proxy - no Session (through reference chain: java.util.ArrayList[0]->com.sublime.np.entity.Question["user"]->com.sublime.np.entity.User["roles"])
  6. 0

    Problems with circular referencing using spring jackson json mapper - Spring Forum

    spring.io | 1 year ago
    org.codehaus.jackson.map.JsonMappingException: Direct self-reference leading to cycle (through reference chain: java.util.ArrayList[0]->lnt.domainObjects.Employee["reportingTo"])

    16 unregistered visitors
    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. org.codehaus.jackson.map.JsonMappingException

      No serializer found for class org.springframework.format.support.DefaultFormattingConversionService and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: org.springframework.validation.support.BindingAwareModelMap["org.springframework.validation.BindingResult.testBean"]->org.springframework.validation.BeanPropertyBindingResult["propertyAccessor"]->org.springframework.beans.BeanWrapperImpl["conversionService"])

      at org.codehaus.jackson.map.ser.StdSerializerProvider$1.failForEmpty()
    2. Data Mapper for Jackson
      ObjectMapper.writeValue
      1. org.codehaus.jackson.map.ser.StdSerializerProvider$1.failForEmpty(StdSerializerProvider.java:89)
      2. org.codehaus.jackson.map.ser.StdSerializerProvider$1.serialize(StdSerializerProvider.java:62)
      3. org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:272)
      4. org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:175)
      5. org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:147)
      6. org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:272)
      7. org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:175)
      8. org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:147)
      9. org.codehaus.jackson.map.ser.MapSerializer.serializeFields(MapSerializer.java:207)
      10. org.codehaus.jackson.map.ser.MapSerializer.serialize(MapSerializer.java:140)
      11. org.codehaus.jackson.map.ser.MapSerializer.serialize(MapSerializer.java:22)
      12. org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:315)
      13. org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:242)
      14. org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1030)
      14 frames
    3. Spring
      AbstractHttpMessageConverter.write
      1. org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.writeInternal(MappingJacksonHttpMessageConverter.java:153)
      2. org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:181)
      2 frames
    4. org.springframework.web
      RequestResponseBodyMethodProcessor.handleReturnValue
      1. org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:121)
      2. org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:101)
      3. org.springframework.web.servlet.mvc.method.annotation.support.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:81)
      3 frames
    5. Spring
      HandlerMethodReturnValueHandlerComposite.handleReturnValue
      1. org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:64)
      1 frame
    6. Spring MVC
      FrameworkServlet.doPost
      1. org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)
      2. org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMethodAdapter.invokeHandlerMethod(RequestMappingHandlerMethodAdapter.java:505)
      3. org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMethodAdapter.handleInternal(RequestMappingHandlerMethodAdapter.java:468)
      4. org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
      5. org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
      6. org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
      7. org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
      8. org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
      8 frames
    7. JavaServlet
      HttpServlet.service
      1. javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
      2. javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
      2 frames