You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Martin Lichtin <li...@yahoo.com.INVALID> on 2017/11/01 21:21:11 UTC
Camel REST: jackson.databind.JsonMappingException: Infinite recursion
(StackOverflowError)
I'm running into a jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError)
with a REST route that uses bindingMode="json" to marshal/unmarshal. It loops like:
...
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:633)
at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:536)
at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:30)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:704)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
...
(not seeing full stack unfortunately)
What's strange is that outside of Camel, I can use a Jackson ObjectWriter just fine to serialize the same object.
So - wanted to ask for pointers where and how Camel (2.18.5) creates and configures its ObjectWriter
that is used in RestConsumerBindingMarshalOnCompletion?
- Martin
Re: Camel REST: jackson.databind.JsonMappingException: Infinite
recursion (StackOverflowError)
Posted by Martin Lichtin <li...@yahoo.com.INVALID>.
To make REST use my own ObjectMapper, I try below but it doesn't work.
Anyone have an example that does?
<bean id="objectMapper" class="my.ObjectMapper">
</bean>
<camelContext id="rest" xmlns="http://camel.apache.org/schema/blueprint">
<dataFormats>
<json id="json" library="Jackson" objectMapper="objectMapper" />
</dataFormats>
<restConfiguration component="servlet" bindingMode="json" >
....
Thanks for a hint.
On 01.11.2017 22:21, Martin Lichtin wrote:
> I'm running into a jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError)
> with a REST route that uses bindingMode="json" to marshal/unmarshal. It loops like:
>
> ...
> at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689)
> at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
> at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:633)
> at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:536)
> at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:30)
> at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:704)
> at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689)
> at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
> ...
> (not seeing full stack unfortunately)
>
> What's strange is that outside of Camel, I can use a Jackson ObjectWriter just fine to serialize the same object.
>
> So - wanted to ask for pointers where and how Camel (2.18.5) creates and configures its ObjectWriter
> that is used in RestConsumerBindingMarshalOnCompletion?
>
> - Martin