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

avec Java Discussion :

Utilisation d'Xstream


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Par défaut Utilisation d'Xstream
    Bonjour,

    je rencontre un problème avec l'utilisation de Xstream.
    Je souhaite parser un fichier Xml vers mes objet Java.

    les noms utilisés dans le Xml et les noms dans les classes Java sont les mêmes.

    Voici le fichier Xml :

    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <Versionning>
      <listeApplication>
      	<Application>
      		<nomAppli>aaaaaa</nomAppli>
      		<RetourVersionning></RetourVersionning>
      		<listeOs>
    	  		<Os>	
    	  			<nomOs>bbbbbb</nomOs>
    	  			<RetourVersionning></RetourVersionning>
    	  			<listeVersionOs>
    	  				<VersionOs>
    	  					<numOs>1</numOs>
    	  					<RetourVersionning></RetourVersionning>
    	  					<listeVersionAppli>
    		  					<VersionAppli>
    			  					<numAppli>1.0.0</numAppli>
    			  					<RetourVersionning></RetourVersionning>
    			  					<listeVersionStatique>
    				  					<VersionStatique>
    				  						<numStatique>1.0.0.0</numStatique>
    				  						<RetourVersionning>
    				  							<codeRetourMaJmaj>0</codeRetourMaJmaj>
    				  							<libelleRetourMaJmaj>libelle test 1</libelleRetourMaJmaj>
    				  							<codeRetourMaJmin>1</codeRetourMaJmin>
    				  							<libelleRetourMaJmin>libelle test 2</libelleRetourMaJmin>
    				  							<codeRetourMaJOs>2</codeRetourMaJOs>
    				  							<libelleRetourMaJOs>libelle test 3</libelleRetourMaJOs>
    				  						</RetourVersionning>
    				  					</VersionStatique>
    				  					<VersionStatique>
    				  						<numStatique>1.0.0.1</numStatique>
    				  						<RetourVersionning>
    				  							<codeRetourMaJmaj>0</codeRetourMaJmaj>
    				  							<libelleRetourMaJmaj>libelle test 4</libelleRetourMaJmaj>
    				  							<codeRetourMaJmin>1</codeRetourMaJmin>
    				  							<libelleRetourMaJmin>libelle test 5</libelleRetourMaJmin>
    				  							<codeRetourMaJOs>2</codeRetourMaJOs>
    				  							<libelleRetourMaJOs>libelle test 6</libelleRetourMaJOs>
    				  						</RetourVersionning>
    				  					</VersionStatique>
    				  				</listeVersionStatique>
    			  				</VersionAppli>	
    			  				<VersionAppli>
    			  					<numAppli>1.0.2</numAppli>
    			  					<listeVersionStatique>
    				  					<VersionStatique>
    				  						<numStatique>1.0.2.0</numStatique>
    				  						<RetourVersionning>
    				  							<codeRetourMaJmaj>0</codeRetourMaJmaj>
    				  							<libelleRetourMaJmaj>libelle test 7</libelleRetourMaJmaj>
    				  							<codeRetourMaJmin>1</codeRetourMaJmin>
    				  							<libelleRetourMaJmin>libelle test 8</libelleRetourMaJmin>
    				  							<codeRetourMaJOs>2</codeRetourMaJOs>
    				  							<libelleRetourMaJOs>libelle test 9</libelleRetourMaJOs>
    				  						</RetourVersionning>
    				  					</VersionStatique>
    				  				</listeVersionStatique>
    			  				</VersionAppli>	
    			  			</listeVersionAppli>
    		  			</VersionOs>
    		  			<VersionOs>
    		  				<numOs>2</numOs>
    		  				<listeVersionAppli>
    			  				<VersionAppli>
    			  					<numAppli>1.0.0</numAppli>
    			  					<listeVersionStatique>
    				  					<VersionStatique>
    				  						<numStatique>1.0.0.0</numStatique>
    				  						<RetourVersionning>
    				  							<codeRetourMaJmaj>0</codeRetourMaJmaj>
    				  							<libelleRetourMaJmaj>libelle test 10</libelleRetourMaJmaj>
    				  							<codeRetourMaJmin>1</codeRetourMaJmin>
    				  							<libelleRetourMaJmin>libelle test 11</libelleRetourMaJmin>
    				  							<codeRetourMaJOs>2</codeRetourMaJOs>
    				  							<libelleRetourMaJOs>libelle test 12</libelleRetourMaJOs>
    				  						</RetourVersionning>
    				  					</VersionStatique>
    			  					</listeVersionStatique>
    			  				</VersionAppli>	
    			  			</listeVersionAppli>
    		  			</VersionOs>
    	  			</listeVersionOs>			
    	  		</Os>
    	  		<Os>	
    	  			<nomOs>ccccc</nomOs>
    	  			<listeVersionOs>
    		  			<VersionOs>
    		  				<numOs>1</numOs>
    		  				<listeVersionAppli>
    			  				<VersionAppli>
    			  					<numAppli>1.0.0</numAppli>
    			  					<listeVersionStatique>
    				  					<VersionStatique>
    				  						<numStatique>1.0.0.0</numStatique>
    				  						<RetourVersionning>
    				  							<codeRetourMaJmaj>0</codeRetourMaJmaj>
    				  							<libelleRetourMaJmaj>libelle test 13</libelleRetourMaJmaj>
    				  							<codeRetourMaJmin>1</codeRetourMaJmin>
    				  							<libelleRetourMaJmin>libelle test 14</libelleRetourMaJmin>
    				  							<codeRetourMaJOs>2</codeRetourMaJOs>
    				  							<libelleRetourMaJOs>libelle test 15</libelleRetourMaJOs>
    				  						</RetourVersionning>
    				  					</VersionStatique>
    				  				</listeVersionStatique>
    			  				</VersionAppli>	
    		  				</listeVersionAppli>
    		  			</VersionOs>
    	  			</listeVersionOs>
    	  		</Os>
    		</listeOs>
      	</Application>
      	<Application>
      		<nomAppli>aaaaab</nomAppli>
      		<listeOs>
    	  		<Os>	
    	  			<nomOs>bbbbbb</nomOs>
    	  			<listeVersionOs>
    		  			<VersionOs>
    		  				<numOs>1</numOs>
    		  				<listeVersionAppli>
    			  				<VersionAppli>
    			  					<numAppli>1.0.0</numAppli>
    			  					<listeVersionStatique>
    				  					<VersionStatique>
    				  						<numStatique>1.0.0.0</numStatique>
    				  						<RetourVersionning>
    				  							<codeRetourMaJmaj>0</codeRetourMaJmaj>
    				  							<libelleRetourMaJmaj>libelle test 16</libelleRetourMaJmaj>
    				  							<codeRetourMaJmin>1</codeRetourMaJmin>
    				  							<libelleRetourMaJmin>libelle test 17</libelleRetourMaJmin>
    				  							<codeRetourMaJOs>2</codeRetourMaJOs>
    				  							<libelleRetourMaJOs>libelle test 18</libelleRetourMaJOs>
    				  						</RetourVersionning>
    				  					</VersionStatique>
    			  					</listeVersionStatique>
    			  				</VersionAppli>	
    		  				</listeVersionAppli>
    		  			</VersionOs>
    	  			</listeVersionOs>
    	  		</Os>
      		</listeOs>
      	</Application>
      </listeApplication>
    </Versionning>
    Voici le code me permettant de parser vers mes objet Java :

    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
     
    Versionning versionning = new Versionning();
    		String versionningXML = "xml/versionning.xml"; 
     
    		InputStream iS = this.getClass().getResourceAsStream(versionningXML);
    HashMap<String, Class<?>> alias = new HashMap<String, Class<?>>();
    				alias.put("Versionning", Versionning.class);
    					alias.put("Application", Application.class);
    //						alias.put("nomAppli", String.class);
    //						alias.put("RetourVersionning", VersionningResponseVO.class);
    						alias.put("Os", Os.class);
    //							alias.put("nomOs", String.class);
    //							alias.put("RetourVersionning", VersionningResponseVO.class);
    							alias.put("VersionOs", VersionOs.class);
    //								alias.put("numOs", String.class);
    //								alias.put("RetourVersionning", VersionningResponseVO.class);
    								alias.put("VersionAppli", VersionAppli.class);
    //									alias.put("numAppli", String.class);
    //									alias.put("RetourVersionning", VersionningResponseVO.class);
    									alias.put("VersionStatique", VersionStatique.class);
    //										alias.put("numStatique", String.class);
    										alias.put("RetourVersionning", VersionningResponseVO.class);
     
    			versionning = (Versionning)com.bnpparibas.fluxsolde.presentation.utility.XstreamUtils.getObjectFromXML(iS, alias);
    Le problème est que mon objet de sortie est null !

    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    bonjour,

    Citation Envoyé par benjibul Voir le message
    Le problème est que mon objet de sortie est null !
    j'imagine que tu veux dire que la methode "getObjectFromXML" te retourne null ?

    Pour t'aider il faudrait savoir ce que fait cette méthode !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Par défaut
    Bonjour,

    pourquoi ne pas simplement faire :

    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
    private deserialiser () {
             FileInputStream fis ;
            try {
                // Instanciation de la classe XStream
                XStream xstream = new XStream(new DomDriver());
     
               //lecture du xml
                fis = new FileInputStream(new File("c:/temp/toto.xml"));
     
                    Versionning v = (Versionning) xstream.fromXML(fis);
            }                    
             catch (Exception e) {
                e.printStackTrace();
            }
            finally {
                    // On s'assure de fermer le flux quoi qu'il arrive
                    fis.close();
            }
    }
    Vérifie aussi qu'il n'y a pas d'erreur entre le nom des balises XML et le nom de tes propriétés de la classe Versionning.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Par défaut
    Problème résolu!!
    Grosse connerie de ma part!!
    La méthode faisant le parse du Xml vers mes objets java avait un
    return null;

    D'ou un objet null en réception!
    Désolé du dérangement!!!

    Merci quand même à vous

Discussions similaires

  1. [XStream] problème avec l'utilisation de PersistenceStrategy
    Par etsopal dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 15/05/2013, 22h29
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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