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

Format d'échange (XML, JSON...) Java Discussion :

Sérialisation en xml [XStream]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 298
    Points : 85
    Points
    85
    Par défaut Sérialisation en xml
    Bonjour,
    suite à la transformation des données en XML, j'ai un souci d'encodage, en tapant à la main des données avec des accents dans le fichiers xml avant la transformation de ce dernier avec le xsl=> OK
    quand les données viennent des objets Java suite à la sérialisation ==> KO

    la sérilisation et la transformation se font comme suivant:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    public static boolean generatePDF(HttpServletResponse pResponse, Object dataToSerialize, XStream xstream, String xslFilePath,String xmlFilePath) {
     
    		logger.info("begin generatePDF");
    		boolean success = true;
    		try{
     
    		//TODO delete later :DEBUG : affiche dans System.out le résultat de la sérialisation
    		//xstream.toXML(dataToSerialize, System.out);
     
     
    		File xmlfile = new File(xmlFilePath);
    		File xsltfile = new File(xslFilePath);
     
    		//TODO new 24/11/2008
    		FileOutputStream fos = new FileOutputStream(xmlfile);
    		xstream.toXML(dataToSerialize, fos);
     
    		logger.info("DEBUG 1111");
    		// Construct driver
    		Driver driver = new Driver();
     
    		// Setup Renderer (output format)
    		driver.setRenderer(Driver.RENDER_PDF);
     
    		// Setup output
     
    		ByteArrayOutputStream out = new ByteArrayOutputStream();
     
    		logger.info("DEBUG 2222");
     
    		try {
     
    			driver.setOutputStream(out);
     
    			// Setup XSLT
    			TransformerFactory factory = TransformerFactory.newInstance();
    			Transformer transformer = factory.newTransformer(new StreamSource(
    					xsltfile));
     
    			// Setup input for XSLT transformation
    			Source src = new StreamSource(xmlfile);
     
    			// Resulting SAX events (the generated FO) must be piped through to
    			// FOP
    			Result res = new SAXResult(driver.getContentHandler());
     
    			logger.info("DEBUG 3333");
     
    		   transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,"ISO-8859-1");
    		   transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes");
    		   transformer.setOutputProperty(javax.xml.transform.OutputKeys.METHOD,".xsl"); 
     
    			// Start XSLT transformation and FOP processing
    			transformer.transform(src, res);
     
    			pResponse.setContentType("application/pdf");
    			pResponse.setHeader("Content-Disposition", "attachment; filename=Contrat.pdf");
    			pResponse.setContentLength(out.size());
    			pResponse.getOutputStream().write(out.toByteArray());
    			pResponse.getOutputStream().flush();
    			pResponse.getOutputStream().close();
     
    			logger.info("DEBUG 4444");
    		} 
    		finally {
    			out.close();
    		}
    		}
    		catch (Exception e) {
    			System.err.println(ExceptionUtil.printStackTrace(e));
    			System.exit(-1);
    			success = false;
    		}
    		logger.info("end generatePDF");
    		return success;
    	}

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 298
    Points : 85
    Points
    85
    Par défaut Définition d'encodage avec Xstream
    je vais essayer ça avant la sérialisation avec Xstream :
    X
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Stream xstream = new XStream(new DomDriver("UTF-8"));
    je sais pas si ça sert à qqchose!!

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 298
    Points : 85
    Points
    85
    Par défaut la solution au moment de la sérialisation
    effectivement la solution était de gérer ça au moment de la sérialisation des objets en XML comme suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XStream xstream = new XStream(new DomDriver("UTF-8"));

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

Discussions similaires

  1. La sérialisation en XML d'un Objet partiellement chargé (JPA)
    Par mesios dans le forum Persistance des données
    Réponses: 2
    Dernier message: 22/05/2008, 11h45
  2. Sérialisation / déserialisation XML
    Par soumamort dans le forum Windows Forms
    Réponses: 5
    Dernier message: 16/04/2008, 17h57
  3. JGraph et sérialisation en XML
    Par fouxy dans le forum Persistance des données
    Réponses: 3
    Dernier message: 21/03/2007, 16h26
  4. Convertir un objet non sérialisable en XML
    Par netdoor.fr dans le forum Persistance des données
    Réponses: 10
    Dernier message: 14/03/2007, 14h08
  5. Sérialisation Desérialisation Xml
    Par sunatva dans le forum VB.NET
    Réponses: 4
    Dernier message: 25/01/2007, 00h06

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