2015-08-08 23 views
5

Sto provando ad utilizzare Jackson per serializzare e deserializzare oggetti (marshall/unmarshall) da e verso JSON. Alcuni di questi oggetti hanno Java 8 LocalDate e ZonedDateTime. Ho letto qui che l'opzione migliore è quella di utilizzare jackson-datatype-jsr310Serializzazione di Java 8 ZonedDateTime con Jackson e JavaTimeModule

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

Tuttavia, quando provo ad usare questo:

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

ottengo questo errore:

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 

Qualche indizio? Sto utilizzando Jackson 2.6.0, Jackson-tipo di dati-jsr310 2.6.0 e sono la distribuzione di Tomcat 8.

Grazie e cordiali saluti

risposta

6

Alla fine, il problema è che ho avuto una versione diversa di Jackson , a causa di una dipendenza con Jongo. jackson-datatype-jsr310 2.6.0 ha bisogno di Jackson 2.6.0 e Jackson 2.4.1 è stato distribuito.

+1

Ho avuto lo stesso problema con 'java.time.LocalDate' e l'ho risolto usando la stessa versione di' jackson-core' e 'jackson-databind'. Nel mio caso era la versione 2.7.4 per entrambe le dipendenze. –

Problemi correlati