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

Java Discussion :

Objet Transformer Serializable


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Par défaut Objet Transformer Serializable
    Bonjour

    Dans une application Java je voudrais rendre un objet de type javax.xml.transform.Transformer serializable.

    Pour cela j'ai la méthode suivante qui devrait transformer mon object "transformer" en un array de bytes:

    ...
    Object obj = transformer;
    ByteArrayOutputStream bos = new ByteArrayOutputStream() ;
    ObjectOutput out = new ObjectOutputStream(bos);
    out.writeObject(obj);
    out.close();

    // Get the bytes of the serialized object
    byte[] buf = bos.toByteArray();

    ...
    Cependant, je suis en train d'avoir l'erreur suivante:

    java.io.NotSerializableException: net.sf.saxon.Controller
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)
    at .processing.transform.cache.CacheTransformers.addTransformer(CacheTransformers.java:62)
    ....


    Comment faire pour régler le problème? avez vous d'autres idées de comment rendre un objet de ce type serializable?

    merci

  2. #2
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Bonjour,

    la classe abstraite Transformer n'est pas Serializable, donc rien ne te garantit que les implémentations le seront.
    Je vois 2 solutions:
    - Tu fais en sorte que l'implémentation que tu utilises soit sérializables (en utilisant une implémentation de ton cru par exemple)
    - Tu sérializes non pas le transformer, mais ce qui t'as permis de l'instancier. En gros, si tu le récupère via un appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TransformerFactory.create(toto)
    tu sérializes toto et tu recréera ton Transformer de la même manière à la déserialisation

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Par défaut
    L'objet Transformer n'étant pas serializable, j'ai utilisé les Templates à la place.
    Ensuite, je crée mon Transformer à partir de l'objet Templates.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. taille d'un objet non serializable
    Par polo54 dans le forum Langage
    Réponses: 8
    Dernier message: 17/12/2009, 15h38
  2. [XSL] Problème d'accents avec l'objet Transformer
    Par djoule6 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/04/2008, 19h19
  3. Transformer un objet JS en String
    Par FremyCompany dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/03/2006, 14h42
  4. [FLASH MX2004] Transformer la souris en objet
    Par ajor dans le forum Flash
    Réponses: 4
    Dernier message: 20/01/2005, 10h49
  5. [ArrayList]transformer l'objet récupéré en double...
    Par snoop dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 16/07/2004, 16h16

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