[jdom-interest] Re: Build from Socket

Jason Hunter jhunter at servlets.com
Tue Nov 18 11:08:10 PST 2003


Forwarding to jdom-interest.  The first post went to jdom-interest-admin.

-jh-

Sebastian Robertsson wrote:

> Hi everyone!
> 
> I know this is an old topic - the problem of building a JDOM-doc read from a socket without closing it. I've 
> just tried this solution:
> 
> http://www.servlets.com/archive/servlet/ReadMsg?msgId=340949&listName=jdom-interest
> 
> But, I can't make it work. It seems like the parser still hangs, and when I terminate the thread on the 
> sender side, I get:
> 
> java.net.SocketException: Connection reset
> 	at java.net.SocketInputStream.read(Unknown Source)
> 	at java.net.SocketInputStream.read(Unknown Source)
> 	at server.ConnectedClient.getRequestData(ConnectedClient.java:189)
> 	at server.ConnectedClient.<init>(ConnectedClient.java:49)
> 	at server.Server.run(Server.java:86)
> 	at java.lang.Thread.run(Unknown Source)
> 
> On the "sender-side" I use a BufferedOutputStream, and I flush the stream after sendning. On the recieving 
> side, this is the code:
> 
> byte[] data = getRequestData(clientSocket.getInputStream());
> InputStream in = new ByteArrayInputStream(data);
> Document d = getXMLDocument(in); 		
> 
> private byte[] getRequestData(InputStream stream) throws IOException
> {
> 	byte[] data = null;
> 	// Content length not specified.
> 	// => Read content stream until an EOF is encountered.
> 	ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);
> 		int l;
> 	byte[] xfer = new byte[1024];
> 	while ((l = stream.read(xfer)) != -1)
> 	{
> 	            baos.write(xfer, 0, l);
> 	}
> 	data = baos.toByteArray();
> 	return data;
> }
> 
> I get everything to work when I close the stream on the sending side, but when I'm not closing it it seems 
> like this code doesn't work after all. Though, as far as I can tell, the XML-doc that I'm sending is alright (it 
> gets parsed correcty when using the close stream-trick, and I can write it to a file and open without 
> problems). Can somebody help me with this, please. Any other solutions, or have I missed something in 
> Laurent Bihanic:s solution?
> 
> Regards,
> 
> Sebastian
> 
> ____________________________________________________________
>   Vad står det om dig på nätet? - http://www.lycos.se/
> 




More information about the jdom-interest mailing list