Bonsoir à tous.
Je suis un étudiant en informatique ayant comme projet de fin de 2eme année de créer un jeu en ligne multijoueur.
Pour cela j'ai choisi FLASH, PHP, and JAVA.
En gros mon application Flash est connectée par un XML socket au serveur (implémenté en JAVA ), envoie l'url du script PHP à éxcuter au serveur, qui l'éxécute, et PHP renvoie du XML au serveur, qui le "flood", propage à tous les clients flash connectés au serveur.

J'ai lu le très bon tutoriel sur JDOM sur le site mais j'aimerais utiliser un InputStream ou un Reader à la place d'un FIle lorsque j'execute la methode build de SAXBuilder :

en gros mon code dans le serveur ressemble à ça :

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
 
import java.lang.*;
import java.net.Socket;
import java.io.*;
 
public class XMLClientHandler extends Thread{
	private BufferedReader input;
	private PrintWriter output;
	private Thread tr;
 
	public XMLClientHandler(Socket s)
	{
		try{
		input = new BufferedReader( new InputStreamReader(s.getInputStream()));
		output = new PrintWriter(s.getOutputStream());
 
		tr = new Thread(this);
		tr.start();
 
 
		}catch(Exception e){ e.printStackTrace();}
	}
 
	public void run()
	{
		try{
			//Ce que nous avons reçu jusque là...
			String sReceived = "";
			char [] tab = new char[1];
 
			JDOM2.createBuilder(input2);
			//Here -1 indicates end of file
			while(input.read(tab, 0, 1) != -1)
			{	
				sReceived +=tab[0];
				//End of XML document
				if(tab[0] == '\u0000')
				{
//Code intéréssant : cette fonction appelle build en passant
//comme argument new StringReader(sReceived);					
JDOM2.createBuilder(new StringReader(sReceived));
//Envoyer à tous les clients connectés au serveur					
sendMsg(sReceived);
					sReceived = "";
				}
 
			}
			System.out.println("Connection CLOSED");
 
		}catch(Exception e){ e.printStackTrace();}
	}
 
	public void sendMsg(String sMsg)
	{
		output.write(sMsg);
		output.flush();
	}
 
}
Malheureusement j'ai toujours une exception de type
org.jdom.input.JDOMParseException: Error on line 1: Content is not allowed in trailing section.

Quelqu'un pourrait-il m'aider? Je commence sérieusement à désespérer là...
Merci.