IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Erreur à la Serialisation/deserialisation d'objets


Sujet :

Langage Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Erreur à la Serialisation/deserialisation d'objets
    Bonjour,

    J'ai une classe A qui contient en autres un HashSet<A> faisant références à d'autres éléments de type A liés à A.

    public Class A {
    HashSet<A> elements;

    public A {
    this.elements = new HashSet<A>()
    }

    Ailleurs dans le code j'ajoute des éléments à A via une méthode A.add(A e).
    Tous les objets de type A sont rassemblés dans une Collection dans un objet de classe C. Une fois le chargement terminé, je sérialise(*) l'objet collection pour transmettre à une autre application via un fichier binaire par exemple - ça serait long à détailler.

    A la lecture et désérialisation, une null java exception se produit, notamment si j'ai au chargement j'ai eu des références croisées, a.add(e) puis plus loin e.add(A).

    Est-ce que l'erreur vient du fait que e n'existe pas à la création de a lors de la désérialisation? Si au lieu de stocker les objets de type A je stocke des Integer, il n'y a pas de problème.

    (*) sérialisation:
    C collec;
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ObjectOutput oo = new ObjectOutputStream(baos);
    oo.writeObject(collec);
    oo.close();

    (**) désérialisation
    Property serializedObject = props.getByName(GraphName);
    ByteArrayInputStream bais = new ByteArrayInputStream((byte[]) serializedObject.getValue().get(Type.ByteArray) );
    ObjectInput oi = new ObjectInputStream(bais);
    Collec = (C)oi.readObject();

    Merci de vos réponses,
    Pierre

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par pducrot Voir le message
    Bonjour,

    J'ai une classe A qui contient en autres un HashSet<A> faisant références à d'autres éléments de type A liés à A.

    public Class A {
    HashSet<A> elements;

    public A {
    this.elements = new HashSet<A>()
    }

    Ailleurs dans le code j'ajoute des éléments à A via une méthode A.add(A e).
    Tous les objets de type A sont rassemblés dans une Collection dans un objet de classe C. Une fois le chargement terminé, je sérialise(*) l'objet collection pour transmettre à une autre application via un fichier binaire par exemple - ça serait long à détailler.

    A la lecture et désérialisation, une null java exception se produit, notamment si j'ai au chargement j'ai eu des références croisées, a.add(e) puis plus loin e.add(A).

    Est-ce que l'erreur vient du fait que e n'existe pas à la création de a lors de la désérialisation? Si au lieu de stocker les objets de type A je stocke des Integer, il n'y a pas de problème.

    (*) sérialisation:
    C collec;
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ObjectOutput oo = new ObjectOutputStream(baos);
    oo.writeObject(collec);
    oo.close();

    (**) désérialisation
    Property serializedObject = props.getByName(GraphName);
    ByteArrayInputStream bais = new ByteArrayInputStream((byte[]) serializedObject.getValue().get(Type.ByteArray) );
    ObjectInput oi = new ObjectInputStream(bais);
    Collec = (C)oi.readObject();

    Merci de vos réponses,
    Pierre

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    on veut bien voir le petit code de stckage des objets danjs ta collection.

Discussions similaires

  1. Serialisation/deserialisation d'un arrayList retourne des objets vides
    Par cdtkoenig dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 18/07/2007, 15h45
  2. Réponses: 3
    Dernier message: 07/01/2007, 16h48
  3. [DOM XML] Erreur fonction load() d'un objet dom??
    Par ribrok dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/10/2005, 11h43
  4. [Info]Sérialisation / Désérialisation...
    Par onlytoine dans le forum Général Java
    Réponses: 3
    Dernier message: 27/08/2005, 21h58
  5. Réponses: 4
    Dernier message: 20/05/2005, 15h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo