Hi Dennis,

you might  try to set the contentLength in PostMethod to the right length or
to CONTENT_LENGTH_CHUNKED = -1.

Regards,
Andreas




> Hi,
> 
> I have been trying to implement a simple client to upload a file to a 
> servlet.  The code I use is pretty basic (summarized below).  I find 
> that it works for files that are sufficiently small (<128 K) but gives 
> the following error for larger files:
> 
> 14 ao�t 2003 10:19:55 com.vigis.designfilereplication.Replicator 
> postReplicationRequest
> GRAVE: I/O error while executing replication post request... root cause 
> Software caused connection abort: socket write error
> java.net.SocketException: Software caused connection abort: socket write 
> error
>       at java.net.SocketOutputStream.socketWrite0(Native Method)
>       at java.net.SocketOutputStream.socketWrite(Unknown Source)
>       at java.net.SocketOutputStream.write(Unknown Source)
>       at 
> org.apache.commons.httpclient.HttpConnection$WrappedOutputStream.write(Ht
> tpConnection.java:1344)
>       at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
>       at java.io.BufferedOutputStream.write(Unknown Source)
>       at 
> org.apache.commons.httpclient.methods.multipart.FilePart.sendData(FilePar
> t.java:300)
>       at 
> org.apache.commons.httpclient.methods.multipart.Part.send(Part.java:294)
>       at 
> org.apache.commons.httpclient.methods.multipart.Part.sendParts(Part.java:
> 344)
>       at 
> org.apache.commons.httpclient.methods.MultipartPostMethod.writeRequestBod
> y(MultipartPostMethod.java:262)
>       at 
> org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.
> java:2224)
>       at 
> org.apache.commons.httpclient.HttpMethodBase.processRequest(HttpMethodBas
> e.java:2534)
>       at 
> org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:
> 1047)
>       at 
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:63
> 8)
>       at 
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:50
> 0)
>       at 
> com.vigis.designfilereplication.Replicator.postReplicationRequest(Replica
> tor.java:424)
>       at com.vigis.designfilereplication.Replicator.main(Replicator.java:170)
> 
> My client is running on Java 1.4.2 under windows xp sp1.  In the case 
> where the post fails, I don't think that it arrives at my server (i.e. 
> my servlet does not start running the getPost() method).  My server is a 
> servlet running under tomcat 4.1.x using the 
> com.oreilly.servlet.MultipartRequest API to handle the upload.  This 
> servlet has be used extensively with multipart posts originalating from 
> Internet Explorer, so there should be no problems with it.
> 
> Here is a cleaned up version of the code I am executing:
> 
>               MultipartPostMethod post = new 
> MultipartPostMethod("http://alsace/vwjserv/accept/dea93";);
>               HttpClient client = new HttpClient();
>               client.setConnectionTimeout(5000);
>               UsernamePasswordCredentials credentials = new 
> UsernamePasswordCredentials("-----","-----");
>               client.getState().setCredentials("realm","host",credentials);
>               post.setDoAuthentication(true);
>               try {
>                       File archive1 = new File("c:/test.txt");
>                       post.addParameter("VIGIS_ULD00",archive1);
>               } catch (FileNotFoundException e1) {
>                       ...
>               }
>               post.addParameter("instant",Long.toHexString(this.instant.getTime()));
>               int statusCode = -1;
>               int retryCount = 0;
>               boolean retry = true;
>               while (retry) {
>                       try {
>                               statusCode = client.executeMethod(post);
>                               retry = false;
>                       } catch (HttpRecoverableException hrx) {
>                               ...
>                       } catch (HttpException e) {
>                               ...
>                       } catch (IOException e) {                       
>                               ...
>                       }
>               }
> 
> I think the code is pretty clean, but I am obviously missing a parmeter 
> or something. Any help would be appreciated.
> 
> Thanks in advance,
> Dennis.
> 
> Dennis Sellinger
> Geotech
> France.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

-- 
COMPUTERBILD 15/03: Premium-e-mail-Dienste im Test
--------------------------------------------------
1. GMX TopMail - Platz 1 und Testsieger!
2. GMX ProMail - Platz 2 und Preis-Qualit�tssieger!
3. Arcor - 4. web.de - 5. T-Online - 6. freenet.de - 7. daybyday - 8. e-Post


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

Reply via email to