Hi,

I'm trying to build a solution when I marshal POJO into JSON and send over
JMS to a remote machine. On the remote machine message is also consumed by
a Camel route.

However the JSON on the remote machine is unable to marshal the JSON that
the dataformater created.

To show the error I created a smaller POC where I use a SEDA within the
same camel context and it shows the same error.
Here is the test project https://bitbucket.org/ullgren/jsonmarshaltest

It seems that the unmarshal does not like the fact that the POJO class name
is added as a field. Is there anyway to change this behaviour,

The error I get is:

[/jsonmarshaltest.sendToBackend] SedaConsumer                   WARN  Error
processing exchange. Exchange[Message:
[{"com.ullgren.pontus.example.model.Order":{"id":"1","customerName":"Joe
Doe","customerEmail":"[email protected]","productNo":"ABC123","amount":"10","dispatched":false}},{"com.ullgren.pontus.example.model.Order":{"id":"2","customerName":"Elmer
Fudd","customerEmail":"[email protected]","productNo":"GUN12G","amount":"2","dispatched":false}},{"com.ullgren.pontus.example.model.Order":{"id":"3","customerName":"Porky
Pig","customerEmail":"[email protected]","productNo":"STU3","amount":"8","dispatched":false}},{"com.ullgren.pontus.example.model.Order":{"id":"4","customerName":"Foghorn
J. 
Leghorn","customerEmail":"[email protected]","productNo":"CORN961","amount":"10","dispatched":false}},{"com.ullgren.pontus.example.model.Order":{"id":"5","customerName":"Wile
E. 
Coyote","customerEmail":"[email protected]","productNo":"BOM44","amount":"100","dispatched":false}}]].
Caused by:
[com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException -
Unrecognized field "com.ullgren.pontus.example.model.Order" (class
com.ullgren.pontus.example.model.Order), not marked as ignorable (6 known
properties: "productNo", "amount", "customerName", "dispatched", "id",
"customerEmail"])
 at [Source: java.io.ByteArrayInputStream@506208e4; line: 1, column: 45]
(through reference chain:
com.ullgren.pontus.example.model.Order["com.ullgren.pontus.example.model.Order"])]
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:
Unrecognized field "com.ullgren.pontus.example.model.Order" (class
com.ullgren.pontus.example.model.Order), not marked as ignorable (6 known
properties: "productNo", "amount", "customerName", "dispatched", "id",
"customerEmail"])
 at [Source: java.io.ByteArrayInputStream@506208e4; line: 1, column: 45]
(through reference chain:
com.ullgren.pontus.example.model.Order["com.ullgren.pontus.example.model.Order"])
at
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:51)
at
com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:731)
at
com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:915)
at
com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1292)
at
com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1270)
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:247)
at
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:118)
at
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:232)
at
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:206)
at
com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:25)
at
com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3051)
at
com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2206)
at
org.apache.camel.component.jackson.JacksonDataFormat.unmarshal(JacksonDataFormat.java:126)
at
org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:67)
at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:163)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:424)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at
org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:291)
at org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:200)
at org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:147)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

Thanks
Pontus Ullgren

Reply via email to