XMLEncoder et JTree - constructeur avec paramètre -

XMLEncoder et JTree - constructeur avec paramètre - - Java - Programmation

Marsh Posté le 04-05-2005 à 12:44:27    

oyé amis forumeurs,
 
je voudrais pouvoir réaliser la sérialisation ou plutot l'encodage en  
un fichier XML d'un composant SWING JTree.
Les Données contenu dans chacun des noeuds de l'abre sont du type suivant:
 

Code :
  1. //CLASS NOEUD : mis en tant que UserObject dans un objet de type DefaultMutableTreeNode
  2. class Noeud
  3. {
  4. Etudiant etu;
  5. Groupe grp;
  6. .
  7. .
  8. .
  9. public  Noeud(IDataNode idn)
  10. }
  11. //Un objet de type noeud contient soit un objet Etudiant soit un objet Groupe
  12. // = INTERFACE COMMUNE
  13. interface IDataNode
  14. {
  15. public String getTypeNode();
  16. public void   setTypeNode(String s);
  17. public String getNom();
  18. public void   setNom(String s);
  19. }
  20. //CLASSE ETUDIANT
  21. entête:       public    Etudiant implements Serializable,  IDataNode
  22. constructeur: public    Etudiant(String nom, String p_prenom, String age)
  23. //CLASS GROUPE
  24. entête:       public    Groupe implements Serializable, IDataNode
  25. constructeur: public    Groupe(String nomGroupe, String IP_Machine)


 
précision: l'implémentation de Serializable est nécéssaire car je suis dans un  environnement RMI est
des objets de type Etudiant et Groupe ont besoin de transiter sur le réseau.
 
 

Code :
  1. //EXEMPLE DE DECLARATION DU JTREE
  2. JTree tree = new JTree(new DefaultMutableTreeNode(new Noeud(   new Groupe(...)   )),true);
  3. ou
  4. JTree tree = new JTree(new DefaultMutableTreeNode(new Noeud(   new Etudiant(...)   )),true);


 
 
 
J'ai essayé d'utiliser ce bout de code (.bc1)  pour générer le fichier XML mais sans succés:

Code :
  1. XMLEncoder e = new XMLEncoder(
  2.     new BufferedOutputStream(
  3.         new FileOutputStream("Test.xml" )));
  4. e.writeObject(tree);
  5. e.close()


 
le fichier résultant n'est pas correct.
 
 
il faux  vraissemblablement que j'utilise la classe DefautlPersistanceDelegate()
car le constructeur de type Noeud à des paramètres.
 
C'est justement dans l'adaptation de cette classe à mon cas de figure que je bloque...
 
 
quand le bout de code (.bc1) s'éxécute j'ai le message d'erreur suivant:
 
java.lang.InstantiationException: Noeud
Continuing ...
java.lang.RuntimeException: failed to evaluate: <unbound>=Class.new();
Continuing ...
 
 
voilà ,en éspérant que certains arriveront à m'éclairer, merci d'avance
 
PS: un lien montrant l'utilisation avancé de la classe XMLEncoder http://java.sun.com/products/jfc/t [...] sistence4/

Reply

Marsh Posté le 04-05-2005 à 12:44:27   

Reply

Marsh Posté le 05-05-2005 à 12:06:31    

up

Reply

Marsh Posté le 08-05-2005 à 21:27:55    

upp

Reply

Marsh Posté le 09-05-2005 à 09:59:02    

tu as un constructeur sans arguments dans ton bean ?
tu respectes toute la norme java bean ?
 
Tu as bien compris la galère dans laquelle tu t'engages en utilisant XMLEncoder ? (perso, je l'ai compris qu'après avoir essayé)


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 10-05-2005 à 06:51:22    

Tu me mets le doute avec l'histoire du bean , effectivement je sais pas si ma classe Noeud doit être considéré comme un bean ou non, bref il doit certainement me manquer quelques notions . Par manque de temps je vais utiliser une technique un peu moins élégante , tanpis, adieu XMLEncoder...

Reply

Marsh Posté le 10-05-2005 à 09:30:34    

je pense que de toutes façons l'idée du XMLEncoder est un fiasco, de la part de Sun.
 
Par contre, oui, tu devais absolument avoir un bean.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 10-05-2005 à 11:40:21    

xstream? :ange:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 10-05-2005 à 12:46:34    

[:florentg]


---------------
trainoo.com, c'est fini
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed