Jackson LocalDate módulo registrado todavía excepción

Yo quería a la lista de serializar con diferentes objetos de la clase Personcon una firstname, lastnamey una birthday. Después de mirar diferentes preguntas en el foro aquí descubrí que necesito registrarme jsr.310.JavaTimeModulepara serializar el LocalDate birthday. Sé que hay muchas entradas en este sitio con respecto a este tema, pero la mayoría de ellas dicen que registrar el módulo es suficiente para manejar el LocalDate.

Esta es mi clase de escritor:

public void write(){
    ArrayList<Person> personList = new ArrayList<>();

    Person p1 = new Person("Peter", "Griffin", LocalDate.of(1988,6,5));
    Person p2 = new Person("Lois", "Griffin", LocalDate.of(1997,9,22));

    personList.add(p1);
    personList.add(p2);

    ObjectMapper mapper = new ObjectMapper().registerModule(new JavaTimeModule());
    ObjectWriter writer = mapper.writer(new DefaultPrettyPrinter());

    try {
        writer.writeValue(new File(System.getProperty("user.dir")+"/File/Personen.json"), personList);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

y mi clase de lector es:

 public void read(){
    ObjectMapper mapper = new ObjectMapper();

    try {
        ArrayList<Person> liste = mapper.readValue(new FileInputStream("File/Personen.json"),
                mapper.getTypeFactory().constructCollectionType(ArrayList.class, Person.class));
        System.out.println(liste.get(0).getFirstname());
    } catch (IOException e) {
        e.printStackTrace();
    }
}

Después de leer el archivo me sale un

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No se puede construir la instancia de java.time.LocalDate (no existen creadores, como la construcción predeterminada): no hay un constructor de argumentos de cadena / método de fábrica para deserializar del valor de cadena ('1988-06 -05 ')
en [Fuente: (FileInputStream); línea: 4, columna: 18] (a través de la cadena de referencia: java.util.ArrayList [0] -> Persona ["cumpleaños"])

Pensé que no necesitaba hacer nada más que registrar el TimeModule. ¿Debo registrar también un módulo para el lector? ¿O hay otro problema con mi código?

Respuesta 1

Tenía instalado java jdk 1.6, y hoy instalé jdk 1.7 porque era necesario para compilar un nuevo proyecto. Así que cambié JAVA_HOME de la ruta 1.6 a la ruta 1.7 y creé el proyecto usando jdk 1.7 cuando intenté ...

Tengo una función que copia el archivo binario public static void copyFile (String Src, String Dst) lanza FileNotFoundException, IOException {File f1 = new File (Src); Archivo f2 = archivo nuevo (Dst); ...

Tengo una Vista en mi ConstraintLayout que está posicionada en XML. Luego quiero cambiar esta vista a otra vista al hacer clic en el botón. Tengo el script para hacerlo y funciona bien, pero aparece la nueva Vista ...

Esto me estaba causando un gran dolor de cabeza, así que pensé en publicar la solución fácil. Mi problema era que cuando usaba la API de Java para S3 de Amazon, solo podía descargar 50 objetos antes de que misteriosamente ...