我有一个带有java.time.LocalDateTime成员变量的对象。 作为我的Camunda流程的一部分,此对象已序列化和反序列化。
但是当我运行该过程时,我得到了JsonMappingException:
Caused by: spinjar.com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class java.time.LocalDateTime]: can not instantiate from JSON object (missing default constructor or creator, or perhaps need to add/enable type information?)
at [Source: N/A; line: -1, column: -1] (through reference chain: my.package.MyObject["myVar"]->myVar["changedDateTime"])
at spinjar.com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)
在其他情况下(没有Camunda),我通过添加jackson-datatype-jsr310依赖项并执行以下操作来解决此问题:
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
但是对于spinjar,似乎spinjar ObjectMapper无法注册JavaTimeModule。
我发现此链接提到了数据格式https://github.com/camunda/camunda-bpm-examples/tree/master/spin/dataformat-configuration-global,但似乎要做很多工作,而这些事情应该非常简单。
有人对此有任何解决方案吗?将我的LocalDateTime变量更改为String只是为了让Camunda开心:(