Hi Nick,

Sounds like there may be a problem with the server side. What server are you using?

Mike

On Oct 19, 2004, at 6:04 PM, Nick Jarvis wrote:

Mike,
I have taken your advise and set the content length manually sending in the length of a file even if it is larger than 2 gigs. I am getting a bug however when uploading over 2 gigs still. It seems that the server is blocking the read function for the ServletInputStream. I get a socket read time out exception thrown. When I look at the bytes that were written and the length of the file, the bytes that were written seem to be more than the length of the file. This only occurs for files over 2 gigs. I tested multiple files, (512 MB, 1.8 GB, 2.0 GB). On the client side I have checked my code for the file input stream and writing of the bytes to the request output stream. The bytes I am writing are consistent with the length of the file, yet I am having this trouble on the server side. I am using HttpServlet on the server side of my application. I am getting the input stream from the request input stream, I am creating a file output stream, and I am writing to the file. I believe that the HttpServlet should be compatible with HTTP 1.1. Still, from my previous threading problem I had to set the setHttp11 function to false so that I do not get the upload error I stated before. Sorry for the questions, but I have tried fixing this and understanding it to no avail. I appreciate any help that you could give me. Thanks for your time,


N. Jarvis

From: Michael Becke <[EMAIL PROTECTED]>
Reply-To: "Commons HttpClient Project" <[EMAIL PROTECTED]>
To: Commons HttpClient Project <[EMAIL PROTECTED]>
Subject: Re: HTTP Version Not Supported Error
Date: Mon, 18 Oct 2004 11:10:48 -0400


Hi Nick,

I have one addition to Roland's comments.

b) Don't call setContentLength, or set it to -1 in a
FilePart object. This should work fine with HTTP/1.1
and chunked encoding, but also with HTTP/1.0 and
no chunked encoding. Since the server does not know
the content length in advance, it has to read until the
end of the stream in no-chunks mode. Connection
re-use is impossible, but after transferring more than
2 gigs I doubt you'll notice the performance impact
of opening a new connection :-)
It might be a violation of HTTP to POST data without
a valid content length, but since you're controlling
the server as well, that shouldn't bother you much.

The HttpClient 2.0 API does not directly support setting content length > 2GB because of the use of an int. This has been fixed in the 3.0 API but it can be done in 2.0 by setting the content-length header manually:


method.setRequestHeader("Content-Length", "Some number bigger than 2GB");

Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar – get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to