J'ai une classe Composant dont des instances sont serialis=E9e sur
Dique, et qui fonctionne.
Ensuite j'ai modifi=E9 le class Composant en rajoutant de nouveaux
champs et m=E9thode.
Le probleme est donc que les deux ne sont plus en phase, et que cela me
plante ?
Auriez vous une idees ?
Je ne peux utiliser la serialisation XML maintenant, car cela
m'obligerais =E0 reccreer tous les composants d=E9ja s=E9rialis=E9, et j'en
est pas mal ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Kupee
Bonjour
J'ai une classe Composant dont des instances sont serialisée sur Dique, et qui fonctionne. Ensuite j'ai modifié le class Composant en rajoutant de nouveaux champs et méthode.
Le probleme est donc que les deux ne sont plus en phase, et que cela me plante ? Auriez vous une idees ?
Je ne peux utiliser la serialisation XML maintenant, car cela m'obligerais à reccreer tous les composants déja sérialisé, et j'en est pas mal ?
Salut, il aurait fallu utiliser un champ serialversionuid dans ta classe (sinon il est généré automatiquement a la compilation), qui permet de retrouver la classe même si celle ci a changé. Je ne me souviens plus la politique de java pour les changements dans les classes. A priori les nouvelles méthodes ne posent pas de problème, les nouveaux champs seront valorisés a leur valeur par défaut (null pour les objets 0 les numériques ...) lors de la désérialisation d'anciens objets. Fais quelque recherches sur ce champ tu verras. Par contre si tes anciennes classes n'en contiennent pas je sais pas trop ce que tu peux faire. Peut etre essayer de retrouver l'ancien serialversionuid généré par java et le recopier dans ta nouvelle version de classe. Mais je sais pas si ca marchera bien.
Bonjour
J'ai une classe Composant dont des instances sont serialisée sur
Dique, et qui fonctionne.
Ensuite j'ai modifié le class Composant en rajoutant de nouveaux
champs et méthode.
Le probleme est donc que les deux ne sont plus en phase, et que cela me
plante ?
Auriez vous une idees ?
Je ne peux utiliser la serialisation XML maintenant, car cela
m'obligerais à reccreer tous les composants déja sérialisé, et j'en
est pas mal ?
Salut, il aurait fallu utiliser un champ serialversionuid dans ta classe
(sinon il est généré automatiquement a la compilation), qui permet de
retrouver la classe même si celle ci a changé.
Je ne me souviens plus la politique de java pour les changements dans
les classes.
A priori les nouvelles méthodes ne posent pas de problème, les nouveaux
champs seront valorisés a leur valeur par défaut (null pour les objets 0
les numériques ...) lors de la désérialisation d'anciens objets.
Fais quelque recherches sur ce champ tu verras.
Par contre si tes anciennes classes n'en contiennent pas je sais pas
trop ce que tu peux faire. Peut etre essayer de retrouver l'ancien
serialversionuid généré par java et le recopier dans ta nouvelle version
de classe. Mais je sais pas si ca marchera bien.
J'ai une classe Composant dont des instances sont serialisée sur Dique, et qui fonctionne. Ensuite j'ai modifié le class Composant en rajoutant de nouveaux champs et méthode.
Le probleme est donc que les deux ne sont plus en phase, et que cela me plante ? Auriez vous une idees ?
Je ne peux utiliser la serialisation XML maintenant, car cela m'obligerais à reccreer tous les composants déja sérialisé, et j'en est pas mal ?
Salut, il aurait fallu utiliser un champ serialversionuid dans ta classe (sinon il est généré automatiquement a la compilation), qui permet de retrouver la classe même si celle ci a changé. Je ne me souviens plus la politique de java pour les changements dans les classes. A priori les nouvelles méthodes ne posent pas de problème, les nouveaux champs seront valorisés a leur valeur par défaut (null pour les objets 0 les numériques ...) lors de la désérialisation d'anciens objets. Fais quelque recherches sur ce champ tu verras. Par contre si tes anciennes classes n'en contiennent pas je sais pas trop ce que tu peux faire. Peut etre essayer de retrouver l'ancien serialversionuid généré par java et le recopier dans ta nouvelle version de classe. Mais je sais pas si ca marchera bien.
Mike Baroukh
Pour retrouver l'ancien serialVersionUid, il suffit de regarder le message de l'exception produite lorsqu'on essaye de le lire. Il indique le nouveau et l'ancien.
Donc, effectivement : il suffit de le récupérer et de le mettre dans la nouvelle classe avec static final long serialVersionUID = <valeur>L;
Le nouvelle méthode n'influent pas. les nouveau champ resterons à leur valeur par défaut.
Mike
Bonjour
J'ai une classe Composant dont des instances sont serialisée sur Dique, et qui fonctionne. Ensuite j'ai modifié le class Composant en rajoutant de nouveaux champs et méthode.
Le probleme est donc que les deux ne sont plus en phase, et que cela me plante ? Auriez vous une idees ?
Je ne peux utiliser la serialisation XML maintenant, car cela m'obligerais à reccreer tous les composants déja sérialisé, et j'en est pas mal ?
Salut, il aurait fallu utiliser un champ serialversionuid dans ta classe (sinon il est généré automatiquement a la compilation), qui permet de retrouver la classe même si celle ci a changé. Je ne me souviens plus la politique de java pour les changements dans les classes. A priori les nouvelles méthodes ne posent pas de problème, les nouveaux champs seront valorisés a leur valeur par défaut (null pour les objets 0 les numériques ...) lors de la désérialisation d'anciens objets. Fais quelque recherches sur ce champ tu verras. Par contre si tes anciennes classes n'en contiennent pas je sais pas trop ce que tu peux faire. Peut etre essayer de retrouver l'ancien serialversionuid généré par java et le recopier dans ta nouvelle version de classe. Mais je sais pas si ca marchera bien.
Pour retrouver l'ancien serialVersionUid, il suffit de regarder le
message de l'exception produite lorsqu'on essaye de le lire. Il indique
le nouveau et l'ancien.
Donc, effectivement : il suffit de le récupérer et de le mettre dans la
nouvelle classe avec
static final long serialVersionUID = <valeur>L;
Le nouvelle méthode n'influent pas.
les nouveau champ resterons à leur valeur par défaut.
Mike
Bonjour
J'ai une classe Composant dont des instances sont serialisée sur
Dique, et qui fonctionne.
Ensuite j'ai modifié le class Composant en rajoutant de nouveaux
champs et méthode.
Le probleme est donc que les deux ne sont plus en phase, et que cela me
plante ?
Auriez vous une idees ?
Je ne peux utiliser la serialisation XML maintenant, car cela
m'obligerais à reccreer tous les composants déja sérialisé, et j'en
est pas mal ?
Salut, il aurait fallu utiliser un champ serialversionuid dans ta classe
(sinon il est généré automatiquement a la compilation), qui permet de
retrouver la classe même si celle ci a changé.
Je ne me souviens plus la politique de java pour les changements dans
les classes.
A priori les nouvelles méthodes ne posent pas de problème, les nouveaux
champs seront valorisés a leur valeur par défaut (null pour les objets 0
les numériques ...) lors de la désérialisation d'anciens objets.
Fais quelque recherches sur ce champ tu verras.
Par contre si tes anciennes classes n'en contiennent pas je sais pas
trop ce que tu peux faire. Peut etre essayer de retrouver l'ancien
serialversionuid généré par java et le recopier dans ta nouvelle version
de classe. Mais je sais pas si ca marchera bien.
Pour retrouver l'ancien serialVersionUid, il suffit de regarder le message de l'exception produite lorsqu'on essaye de le lire. Il indique le nouveau et l'ancien.
Donc, effectivement : il suffit de le récupérer et de le mettre dans la nouvelle classe avec static final long serialVersionUID = <valeur>L;
Le nouvelle méthode n'influent pas. les nouveau champ resterons à leur valeur par défaut.
Mike
Bonjour
J'ai une classe Composant dont des instances sont serialisée sur Dique, et qui fonctionne. Ensuite j'ai modifié le class Composant en rajoutant de nouveaux champs et méthode.
Le probleme est donc que les deux ne sont plus en phase, et que cela me plante ? Auriez vous une idees ?
Je ne peux utiliser la serialisation XML maintenant, car cela m'obligerais à reccreer tous les composants déja sérialisé, et j'en est pas mal ?
Salut, il aurait fallu utiliser un champ serialversionuid dans ta classe (sinon il est généré automatiquement a la compilation), qui permet de retrouver la classe même si celle ci a changé. Je ne me souviens plus la politique de java pour les changements dans les classes. A priori les nouvelles méthodes ne posent pas de problème, les nouveaux champs seront valorisés a leur valeur par défaut (null pour les objets 0 les numériques ...) lors de la désérialisation d'anciens objets. Fais quelque recherches sur ce champ tu verras. Par contre si tes anciennes classes n'en contiennent pas je sais pas trop ce que tu peux faire. Peut etre essayer de retrouver l'ancien serialversionuid généré par java et le recopier dans ta nouvelle version de classe. Mais je sais pas si ca marchera bien.
ownowl
Bonjour
J'ai une classe Composant dont des instances sont serialisée sur Dique, et qui fonctionne. Ensuite j'ai modifié le class Composant en rajoutant de nouveaux champs et méthode.
Le probleme est donc que les deux ne sont plus en phase, et que cela me plante ? Auriez vous une idees ?
Je ne peux utiliser la serialisation XML maintenant, car cela m'obligerais à reccreer tous les composants déja sérialisé, et j'en est pas mal ?
Salut, il aurait fallu utiliser un champ serialversionuid dans ta classe (sinon il est généré automatiquement a la compilation), qui permet de retrouver la classe même si celle ci a changé. Je ne me souviens plus la politique de java pour les changements dans les classes. A priori les nouvelles méthodes ne posent pas de problème, les nouveaux champs seront valorisés a leur valeur par défaut (null pour les objets 0 les numériques ...) lors de la désérialisation d'anciens objets. Fais quelque recherches sur ce champ tu verras. Par contre si tes anciennes classes n'en contiennent pas je sais pas trop ce que tu peux faire. Peut etre essayer de retrouver l'ancien serialversionuid généré par java et le recopier dans ta nouvelle version de classe. Mais je sais pas si ca marchera bien.
ca doit marcher, on peut retrouver ce numéro grace à l'utilitaire de sun founit avec le jdk : serialver
Olivier
Bonjour
J'ai une classe Composant dont des instances sont serialisée sur
Dique, et qui fonctionne.
Ensuite j'ai modifié le class Composant en rajoutant de nouveaux
champs et méthode.
Le probleme est donc que les deux ne sont plus en phase, et que cela me
plante ?
Auriez vous une idees ?
Je ne peux utiliser la serialisation XML maintenant, car cela
m'obligerais à reccreer tous les composants déja sérialisé, et j'en
est pas mal ?
Salut, il aurait fallu utiliser un champ serialversionuid dans ta classe
(sinon il est généré automatiquement a la compilation), qui permet de
retrouver la classe même si celle ci a changé.
Je ne me souviens plus la politique de java pour les changements dans
les classes.
A priori les nouvelles méthodes ne posent pas de problème, les nouveaux
champs seront valorisés a leur valeur par défaut (null pour les objets 0
les numériques ...) lors de la désérialisation d'anciens objets.
Fais quelque recherches sur ce champ tu verras.
Par contre si tes anciennes classes n'en contiennent pas je sais pas
trop ce que tu peux faire. Peut etre essayer de retrouver l'ancien
serialversionuid généré par java et le recopier dans ta nouvelle version
de classe. Mais je sais pas si ca marchera bien.
ca doit marcher, on peut retrouver ce numéro grace à l'utilitaire de sun
founit avec le jdk : serialver
J'ai une classe Composant dont des instances sont serialisée sur Dique, et qui fonctionne. Ensuite j'ai modifié le class Composant en rajoutant de nouveaux champs et méthode.
Le probleme est donc que les deux ne sont plus en phase, et que cela me plante ? Auriez vous une idees ?
Je ne peux utiliser la serialisation XML maintenant, car cela m'obligerais à reccreer tous les composants déja sérialisé, et j'en est pas mal ?
Salut, il aurait fallu utiliser un champ serialversionuid dans ta classe (sinon il est généré automatiquement a la compilation), qui permet de retrouver la classe même si celle ci a changé. Je ne me souviens plus la politique de java pour les changements dans les classes. A priori les nouvelles méthodes ne posent pas de problème, les nouveaux champs seront valorisés a leur valeur par défaut (null pour les objets 0 les numériques ...) lors de la désérialisation d'anciens objets. Fais quelque recherches sur ce champ tu verras. Par contre si tes anciennes classes n'en contiennent pas je sais pas trop ce que tu peux faire. Peut etre essayer de retrouver l'ancien serialversionuid généré par java et le recopier dans ta nouvelle version de classe. Mais je sais pas si ca marchera bien.
ca doit marcher, on peut retrouver ce numéro grace à l'utilitaire de sun founit avec le jdk : serialver