Salut,
je cherche à parser une structure xml simple du style :Pour cela j'utilise Digester avec un fichier XML_FILE_DEF.xml (contenant la structure à mapper dans une classe Java) et DIGESTER_FILE_RULES.xml (decrivant les regles de mapping entre XML et JAVA).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <user_data> <user>toto</user> <player_id>1</player_id> <team_id>372</team_id> <last_login>0</last_login> <fs_fan>0</fs_fan> </user_data>
J'ai créer un bean User avec les attributs suivants :Comme cela je respecte la structure XML.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private String user; private String player_id; private String team_id; private String last_login; private String fs_fan;
voici mon DIGESTER_FILE_RULES.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 <digester-rules> <!-- --> <!-- Creating User --> <!-- --> <object-create-rule pattern="user_data" classname="User" /> <call-method-rule pattern="user_data/user" methodname="setUser" paramcount="0" /> <call-method-rule pattern="user_data/player_id" methodname="setPlayer_id" paramcount="0" /> <call-method-rule pattern="user_data/team_id" methodname="setTeam_id" paramcount="0" /> <call-method-rule pattern="user_data/last_login" methodname="setLast_login" paramcount="0" /> <call-method-rule pattern="user_data/fs_fan" methodname="setFs_fan" paramcount="0" /> </pattern> </digester-rules>
Voici la methode qui est censée me renvoyer la réference de User :Aucune erreur n'est signalée, par contre la réference est null.
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 Object getObject() { Object object = null; Digester digester = null; //MyErrorHandler eh = new MyErrorHandler(); try { digester = DigesterLoader.createDigester(this.digesterFileRules.toURL()); //digester.setErrorHandler(eh); object = digester.parse(this.xmlFileDef); logger.info("mapping digester XML/JAVA ok"); } catch (MalformedURLException e) { logger.error("MalformedURLException", e); } catch (IOException e) { logger.error("IOException", e); } catch (SAXException e) { logger.error("SAXException", e); } return object; }
je crois que c'est mon fichier DIGESTER_FILE_RULES.xml qui est mal écrit.
J'ai remarqué que les tutorials charge des fichiers avec un premier objet qui contient un ensemble de d'objets dans des listes...
Dans mon cas je ne souhaite charger qu'un objet, est ce la raison cette reference null ????
Partager