2015-08-08 222 views
5

我试图用Jackson来对JSON序列化和反序列化对象(marshall/unmarshall)。其中一些对象具有Java 8 LocalDate和ZonedDateTime。我在这里读,最好的选择是使用jackson-datatype-jsr310Java 8 ZonedDateTime与Jackson和JavaTimeModule的序列化

serialize/deserialize java 8 java.time with Jackson JSON mapper

然而,当我尝试使用此:

ObjectMapper mapper = new ObjectMapper(); 
mapper.registerModule(new JavaTimeModule()); 

我得到这个错误:

java.lang.IllegalAccessError: tried to access method com.fasterxml.jackson.databind.ser.std.StdSerializer.<init>(Ljava/lang/Class;)V from class com.fasterxml.jackson.datatype.jsr310.JavaTimeModule 

任何线索?我使用的是2.6.0杰克逊,杰克逊 - 数据类型 - jsr310 2.6.0和我部署到Tomcat 8

感谢和问候

回答

6

最后,问题是我有一个不同的版本,杰克逊,因为与Jongo有依赖关系。 jackson-datatype-jsr310 2.6.0需要Jackson 2.6.0和Jackson 2.4.1正在部署。

+1

我有'java.time.LocalDate'的相同问题,并使用相同版本的'jackson-core'和'jackson-databind'解决它。在我的情况下,这两个依赖项都是2.7.4版本。 –