Search code examples
javaexceptiondeserializationsimple-framework

Read XML file using SimpleXML throws Serializer Exception


I use SimpleXML to save a simple POJO into XML file and then read it back. I follow this tutorial. The file is successfully created, but the reading part is just simply not working. It throws the second exception which comes from serializer.read.

Room room = new Room("1");

Serializer serializer = new Persister();
try {
    File ff = new File("room.xml");
    serializer.write(room, ff);
} catch (FileNotFoundException e) {
    System.out.println("FileNotFoundException\n");
} catch (Exception e) {
    System.out.println("Exception from serializer.write\n");
}

try {
    File ffi = new File("room.xml");
    Room aroom = serializer.read(Room.class, ffi);
    System.out.println("RoomName: " + aroom.getRid() + "\n");
} catch (FileNotFoundException e) {
    System.out.println("FileNotFoundException\n");
} catch (Exception e) {
    System.out.println("Exception from serializer.read\n");
}

Any hint?


Solution

  • Make sure you have a default constructor in Room.

    public Room(){
    }
    

    Alternatively, make sure your constructor looks like this:

    public Room(@Attribute(name="rid") String rid){
        this.rid = rid;
    }