-1

I am getting following error according to date time and jackson. I am not able to figure a way out. Any suggestions?

Caused by: com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class org.joda.time.chrono.ISOChronology]: can not instantiate from JSON object (missing default constructor or creator, or perhaps need to add/enable type information?)
 at [Source: ["[Ljava.lang.Object;",[1,3,["org.joda.time.DateTime",{"era":1,"dayOfYear":57,"dayOfWeek":5,"dayOfMonth":26,"year":2016,"yearOfCentury":16,"centuryOfEra":20,"secondOfDay":19539,"minuteOfDay":325,"hourOfDay":5,"minuteOfHour":25,"secondOfMinute":39,"millisOfSecond":538,"yearOfEra":2016,"weekyear":2016,"monthOfYear":2,"millisOfDay":19539538,"weekOfWeekyear":8,"chronology":["org.joda.time.chrono.ISOChronology",{"zone":["org.joda.time.UTCDateTimeZone",{"fixed":true,"id":"UTC"}]}],"millis":1456464339538,"zone":["org.joda.time.UTCDateTimeZone",{"fixed":true,"id":"UTC"}],"afterNow":false,"beforeNow":true,"equalNow":false}]]]; line: 1, column: 412] (through reference chain: Object[][2]->org.joda.time.DateTime["chronology"])
    at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1080)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:295)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:142)
    at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer._deserialize(AsArrayTypeDeserializer.java:110)
    at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer.deserializeTypedFromObject(AsArrayTypeDeserializer.java:58)
    at com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:131)
    at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:521)
    at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:95)
    at com.fasterxml.jackson.databind.deser.impl.BeanPropertyMap.findDeserializeAndSet(BeanPropertyMap.java:285)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:248)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:136)
    at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer._deserialize(AsArrayTypeDeserializer.java:110)
    at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer.deserializeTypedFromAny(AsArrayTypeDeserializer.java:68)
    at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserializeWithType(UntypedObjectDeserializer.java:500)
    at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:158)
    at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:17)
    at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer._deserialize(AsArrayTypeDeserializer.java:110)
    at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer.deserializeTypedFromArray(AsArrayTypeDeserializer.java:50)
    at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserializeWithType(ObjectArrayDeserializer.java:189)
    at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserializeWithType(ObjectArrayDeserializer.java:17)
    at com.fasterxml.jackson.databind.deser.impl.TypeWrappedDeserializer.deserialize(TypeWrappedDeserializer.java:42)
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3562)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2578)
    at com.amazonaws.services.simpleworkflow.flow.JsonDataConverter.fromData(JsonDataConverter.java:96)
SkyWalker
  • 28,384
  • 14
  • 74
  • 132
Amruta Shah
  • 1
  • 1
  • 1

1 Answers1

1

By default jackson does not have proper mappings for JodaTime

Check out jackson-datatype-joda project here

After you add this jar to your classpath, you'll have to register module by either:

// less performant
ObjectMapper mapper = new ObjectMapper();
mapper.findAndRegisterModules();

or

// more performant
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());
Bogdan Kobylynskyi
  • 1,150
  • 1
  • 12
  • 34
Maciej Dobrowolski
  • 11,561
  • 5
  • 45
  • 67