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

Persistance des données Java Discussion :

XStream - Problème de lecture


Sujet :

Persistance des données Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 22
    Points
    22
    Par défaut XStream - Problème de lecture
    Bonjour,

    J'utilise XStream pour sérialiser un object que je vais nommer globalConfig.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    	public static void saveConfig(GlobalConfig globalConfig) throws FileNotFoundException {
     
    		XStream xs = new XStream();
    		String globalConfigFileName = Utils.getUtils().getProperty("globalConfigFile", ConfigConstant.PROPERTY_FILE);
     
    		File globalConfigFile = new File(globalConfigFileName);
    		FileOutputStream fos = new FileOutputStream(globalConfigFile);
     
    		try {
    			xs.toXML(globalConfig,fos);
    		}
    		catch (Exception e) {
    			//log
    		}
    		finally {
    			try {
    				fos.close();
    			} catch (IOException e) {
    				//Log
    			}
    		}
    	}
    Jusque là aucun pb. Cela me génére bien un fichier XML avec les bonne données dedans.

    Maintenant lorsque j'essaye de lire ce même fichier XML avec XStream j'ai une exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    com.thoughtworks.xstream.io.StreamException:  : Read error
    qui est levée.

    Mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
      public static GlobalConfig readConfig() throws FileNotFoundException {
    
    		XStream xs = new XStream();
    		String filename = Utils.getUtils().getProperty("globalConfigFile", ConfigConstant.PROPERTY_FILE);
    		FileInputStream is = new FileInputStream(filename);
    		
    		if (is != null) {
    			try {
    				//System.out.print(inputStreamToString(is)); => on voit bien le XML
    			} catch (IOException e1) {
    				//Log
    			}
    			try {
    				return (GlobalConfig) xs.fromXML(is); // c'est ici que cela plante
    			}
    			catch (Exception e) {
    				//Log
    			}
    		}
    		else {
    			throw new FileNotFoundException();
    		}
    	}
    Je ne comprends pas. Je récupère bien la chaine XML du fichier donc ce n'est pas un pb de path ou de droits.
    Le XML est généré par XStream lui même donc je ne pense pas que ce soit un problème de parsing du XML ...

    Là je n'ai plus d'idée. Si qq'un en a une je suis preneur.
    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quel est le stacktrace complet de l'exception ?
    J'espère que les //log dans les catchs correspondent bien à du code dans la réalité !!!

    a++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Oui j'ai mis //log pour alléger le copier/coller

    Sinon voiçi la trace complete ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    com.thoughtworks.xstream.io.StreamException:  : Read error
    	at com.thoughtworks.xstream.io.xml.XppReader.pullNextEvent(XppReader.java:69)
    	at com.thoughtworks.xstream.io.xml.AbstractPullReader.readRealEvent(AbstractPullReader.java:126)
    	at com.thoughtworks.xstream.io.xml.AbstractPullReader.readEvent(AbstractPullReader.java:119)
    	at com.thoughtworks.xstream.io.xml.AbstractPullReader.move(AbstractPullReader.java:98)
    	at com.thoughtworks.xstream.io.xml.AbstractPullReader.moveDown(AbstractPullReader.java:83)
    	at com.thoughtworks.xstream.io.xml.XppReader.<init>(XppReader.java:37)
    	at com.thoughtworks.xstream.io.xml.XppDriver.createReader(XppDriver.java:30)
    	at com.thoughtworks.xstream.io.xml.XppDriver.createReader(XppDriver.java:34)
    	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:789)
    	at com.rct.config.parser.GlobalConfigParser.readConfig(GlobalConfigParser.java:49)
    	at com.rct.test.Test1.main(Test1.java:30)
    Caused by: java.io.IOException: Read error
    	at java.io.FileInputStream.readBytes(Native Method)
    	at java.io.FileInputStream.read(FileInputStream.java:199)
    	at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
    	at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
    	at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
    	at java.io.InputStreamReader.read(InputStreamReader.java:167)
    	at java.io.BufferedReader.read1(BufferedReader.java:185)
    	at java.io.BufferedReader.read(BufferedReader.java:261)
    	at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:2972)
    	at org.xmlpull.mxp1.MXParser.more(MXParser.java:3026)
    	at org.xmlpull.mxp1.MXParser.parseProlog(MXParser.java:1410)
    	at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1395)
    	at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
    	at com.thoughtworks.xstream.io.xml.XppReader.pullNextEvent(XppReader.java:52)
    Je me demande si il ne me manque pas tout simplement un jar.

    ...

    Hmmm ... J'ai redemarré Eclipse et ca fonctionne sans rien avoir changé

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

Discussions similaires

  1. [débutant] problème de lecture d'image
    Par shura dans le forum OpenGL
    Réponses: 16
    Dernier message: 03/07/2004, 19h05
  2. [TFileStream] Problème de lecture de string
    Par Pedro dans le forum Langage
    Réponses: 6
    Dernier message: 28/06/2004, 14h06
  3. problème de lecture base de registre
    Par pafounet3 dans le forum MFC
    Réponses: 10
    Dernier message: 31/12/2003, 15h06
  4. [fread] Problème de lecture de buffer
    Par karl3i dans le forum C
    Réponses: 2
    Dernier message: 25/09/2003, 10h21
  5. Réponses: 4
    Dernier message: 23/07/2003, 14h07

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