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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
public class Album {
    private String nom;
    private Vector<Photo> v_photos;
 
        ...
}
la classe photo:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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