Salut

j'ai une methode :

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 Document getXmlData() {
 
		greetingService.getCountriesList(new AsyncCallback<String>() {
			@Override
			public void onSuccess(String result) {
				MessageBox.alert(result);
				xmlDoc = XMLParser.parse(result);
 
			}
 
			@Override
			public void onFailure(Throwable caught) {
				MessageBox.alert(caught.getMessage());
 
			}
		});
		return xmlDoc;
 
	}
OnmduleLoad():
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
 
 
		Document doc = getXmlData();
//
//		Element treeNode = doc.getDocumentElement();
//		NodeList nodes = treeNode.getChildNodes();
//		Tree tree = new Tree();
//		TreeNode node = new TreeNode();
 
 
		Panel panel = new Panel();
		panel.setBorder(false);
		panel.setPaddings(15);
 
		final TreePanel treePanel = new TreePanel();
		treePanel.setWidth(240);
		treePanel.setHeight(400);
		treePanel.setTitle("Editable Tree");
		treePanel.setAnimate(true);
		treePanel.setEnableDD(true);
		treePanel.setContainerScroll(true);
		treePanel.setRootVisible(true);
 
		final XMLTreeLoader loader = new XMLTreeLoader();
		loader.setDataUrl(getXmlData().toString());
		loader.setMethod(Connection.GET);
		loader.setRootTag("countries");
		loader.setLeafTag("country");
		loader.setAttributeMappings(new String[] { "@title" });
 
		final AsyncTreeNode root = new AsyncTreeNode("Countries", loader);
		treePanel.setRootNode(root);
 
		root.expand();
		treePanel.expandAll();
 
		treePanel.addTool(new Tool(Tool.REFRESH, new Function() {
 
			public void execute() {
				treePanel.getEl().mask("Loading", "x-mask-loading");
				root.reload();
				root.collapse(true, false);
				Timer timer = new Timer() {
					@Override
					public void run() {
						treePanel.getEl().unmask();
						root.expand(true, true);
					}
				};
				timer.schedule(1000);
			}
		}, "Refresh"));
 
		TreeEditor treeEditor = new TreeEditor(treePanel);
 
		panel = new Panel();
		panel.setBorder(false);
		panel.add(treePanel);
 
		RootPanel.get().add(panel);
Codes dans mon service pour recupérer un String 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
 
		List<Object[]> list = new ArrayList<Object[]>();
		list.add(new Object[] { "Australia" });
 
		list.add(new Object[] {  "Brazil" });
		list.add(new Object[] {  "Canada" });
		list.add(new Object[] {  "China" });
		list.add(new Object[] { "Germany" });
		list.add(new Object[] { "France" });
		list.add(new Object[] { "India" });
		list.add(new Object[] { "Seychelles" });
		list.add(new Object[] { "United States" });
		list.add(new Object[] { "Japan" });
		list.add(new Object[] { "Italy" });
		list.add(new Object[] { "Ghana" });
		list.add(new Object[] { "Iceland" });
		list.add(new Object[] { "Finland" });
		list.add(new Object[] { "Switzerland" });
 
 
		DocumentBuilderFactory factory
        = DocumentBuilderFactory.newInstance();
      DocumentBuilder builder = null;
		try {
			builder = factory.newDocumentBuilder();
		} catch (ParserConfigurationException e4) {
			e4.printStackTrace();
		}
      DOMImplementation impl = builder.getDOMImplementation();
 
 
      Document doc = impl.createDocument(null,null,null);
      if(list != null && list.size() != 0){
      	Element e1 = doc.createElement("countries");
      	doc.appendChild(e1);
			for (Object[] objects : list) {
				Element e2 = doc.createElement("country");
		        e1.appendChild(e2);
				for (Object object : objects) {
				        e2.setAttribute("title",object.toString());
				}
			}
		}
      // transform the Document into a String
      DOMSource domSource = new DOMSource(doc);
      TransformerFactory tf = TransformerFactory.newInstance();
      Transformer transformer = null;
		try {
			transformer = tf.newTransformer();
		} catch (TransformerConfigurationException e3) {
			// TODO Auto-generated catch block
			e3.printStackTrace();
		}
      //transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
      transformer.setOutputProperty(OutputKeys.METHOD, "xml");
      transformer.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1");
      transformer.setOutputProperty
          ("{http://xml.apache.org/xslt}indent-amount", "4");
      transformer.setOutputProperty(OutputKeys.INDENT, "yes");
      java.io.StringWriter sw = new java.io.StringWriter();
      StreamResult sr = new StreamResult(sw);
      try {
			transformer.transform(domSource, sr);
		} catch (TransformerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
      String xml = sw.toString();
 
 
		return xml;
Dans l'implementation du service je créé un string en format xml. Je tiens a charger un tree a partir ce fichier xml. dans mes codes coté client je convertis le string xml en document.


Mon probleme est lorsque je fait un debug le fonction getXmlData me retourne un document Null. Donc je n'arrive pas charger le tree. C'est a la fain de mon debug que le service est chargé. Je n'arrive pas à comprendre cela.

Quelqu'un pourra m'aider svp.

Neerou