Salut,

je cherche à parser une structure xml simple du style :
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>
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).

J'ai créer un bean User avec les attributs suivants :
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;
Comme cela je respecte la structure XML.

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 :
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;
	}
Aucune erreur n'est signalée, par contre la réference est null.
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 ????