tout d'abord une photo de mon diagramme de classes
quand je serialize mon objet Session, qui contient donc un tableua de dossier, un tab de jury et un tab d'ecoles, tout marche bien
quand je deserialize comme ca :
Code :
- try{
- ObjectInputStream ois = new ObjectInputStream(new FileInputStream("session.txt" ));
- Session tmp = (Session) ois.readObject();
- }
- catch (java.io.IOException e) {
- e.printStackTrace();
- }
- catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
|
si la super classe personne n'a pas de constructeur sans arguments ca me donne :
ca
Code :
- [cpp]java.io.InvalidClassException: PersonneMissing no-arg constructor for class
- at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1350)
- at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
- at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2263)
- at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:519)
- at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1412)
- at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
- at java.io.ObjectInputStream.inputArray(ObjectInputStream.java:1142)
- at java.io.ObjectInputStream.readObject(ObjectInputStream.java:374)
- at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2263)
- at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:519)
- at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1412)
- at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
- at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
- at Launch.loadMenu(Launch.java:32)
- at StartAppli.main(StartAppli.java:16)
|
ou ca (plus rarement)
[/cpp]
ou plus rarement :
Code :
- java.io.InvalidClassException: Session; Local class not compatible: stream classdesc serialVersionUID=-1030363450047633487 local class serialVersionUID=-6174836046218582669
- at java.io.ObjectStreamClass.validateLocalClass(ObjectStreamClass.java:523)
- at java.io.ObjectStreamClass.setClass(ObjectStreamClass.java:567)
- at java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:936)
- at java.io.ObjectInputStream.readObject(ObjectInputStream.java:366)
- at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
- at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1186)
- at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
- at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
- at Launch.loadMenu(Launch.java:32)
- at StartAppli.main(StartAppli.java:16)
|
et si je colle un constructeur vide ds Personne
du stle
Personne()
{}
ca plante plus mais ca deserialize rien.
qqun aurait une idée ? c'est super important
merci d'avance
(je rentrerai tard ds la soirée)
Message édité par ZuL le 15-02-2003 à 19:27:55