[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