Enregistrements manquants avec XmlEncoder
Bonjour.
J'ai un problème avec XmlEncoder. J'aimerais enregistrer un objet de type Album dans un fichier au format XML.
Voici la classe:
Code:
1 2 3 4 5 6 7
|
public class Album {
private String nom;
private Vector<Photo> v_photos;
...
} |
la classe photo:
Code:
1 2 3 4 5 6 7 8 9
|
public class Photo {
private int num;
private String nomAlbum;
private String url;
private Vector<Commentaire> v_commentaires;
...
} |
et la classe commentaire:
Code:
1 2 3 4 5 6 7 8
|
public class Commentaire {
private int num;
private int numPhoto;
private String contenu;
...
} |
Voici ma fonction qui doit écrire l'album dans le fichier xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
public void save(Album objPojo) {
try {
// ouverture de l'encodeur vers le fichier
XMLEncoder encoder = new XMLEncoder(new FileOutputStream(objPojo.getNom()+".txt"));
// serialisation de l'objet
encoder.writeObject((Album)objPojo);
encoder.flush();
// fermeture de l'encodeur
encoder.close();
Vector<String> bibliotheque = listerAlbums();
bibliotheque.add(objPojo.getNom());
try {
// ouverture de l'encodeur vers le fichier
XMLEncoder encoder2 = new XMLEncoder(new FileOutputStream("bibliotheque.txt"));
// serialisation de l'objet
encoder2.writeObject(bibliotheque);
encoder2.flush();
// fermeture de l'encodeur
encoder2.close();
}catch(Exception ex){}
}catch(Exception ex){}
} |
Dans mon fichier, les données de l'album sont bien présentes, j'y retrouve également les photos du vector<Photo> mais les commentaires sont absents
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.6.0" class="java.beans.XMLDecoder">
<object class="metier.Album">
<void property="vPhotos">
<object class="java.util.Vector">
<void method="add">
<object class="metier.Photo">
<void property="nomAlbum">
<string>test3</string>
</void>
<void property="url">
<string>C:\\Users\\Public\\Pictures\\Sample Pictures\\Jellyfish.jpg</string>
</void>
</object>
</void>
<void method="add">
<object class="metier.Photo">
<void property="nomAlbum">
<string>test3</string>
</void>
<void property="url">
<string>C:\\Users\\Public\\Pictures\\Sample Pictures\\Chrysanthemum.jpg</string>
</void>
</object>
</void>
</object>
</void>
<void property="nom">
<string>test3</string>
</void>
</object>
</java> |
On dirait que les </object> correspondent aux commentaires mais ils sont vides... :/
Je précise que j'ai bien dans les 3 classes un constructeur vide et des get/set sur les variables...
Un solution? :s
Merci d'avance :)