hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ortwin Glück <...@odi.ch>
Subject Re: Problems with connection reset - HTTPClient
Date Fri, 12 Aug 2005 08:05:42 GMT
Saminda,

You are speaking about a connection failure while executing a POST 
method. Please read "Automatic exception recovery" in 
http://jakarta.apache.org/commons/httpclient/exception-handling.html

For transaction safety reasons HttpClient does not automatically retry 
the request in your case. Consider implementing your own 
HttpMethodRetryHandler as outlined in the documentation above.

BTW:
I see you are implementing your own classes for chunked streaming. You 
will benefit of the upcoming http-common library of HttpClient 4 that 
contains such functionality ready to be reused. Actually you could 
already reuse the classes present in HttpClient 3, if HttpClient is a 
hard dependency of your project anyway.

Hope that helps. Cheers

Ortwin Glück

Saminda Abeyruwan wrote:
> Hi Devs,
> 
> I'm a Axis2 soap stack contributor. We use the functionality of  
> commons-httpclient-3.0-rc2  in our transport layer.  When we  writing  
> test cases, we have come accorss with the following exception in the 
> following environment.
> 
> Linux(Ubuntu)/2.6.10-5-386 i386  java/1.4.2_08 and maven/1.0.2.
> 
> Exception is ,
> 
> org.apache.axis2.AxisFault: Connection reset; nested exception is: 
>     java.net.SocketException: Connection reset; nested exception is: 
>     org.apache.axis2.AxisFault: Connection reset; nested exception is: 
>     java.net.SocketException: Connection reset
>     at 
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:139)

> 
>     at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:87)
>     at 
> org.apache.axis2.clientapi.TwoWayTransportBasedSender.send(TwoWayTransportBasedSender.java:34)

> 
>     at 
> org.apache.axis2.clientapi.InOutMEPClient.invokeBlocking(InOutMEPClient.java:174) 
> 
>     at org.apache.axis2.clientapi.Call.invokeBlocking(Call.java:90)
>     at 
> org.apache.axis2.engine.CharctersetEncodingTest.runTest(CharctersetEncodingTest.java:105)

> 
>     at 
> org.apache.axis2.engine.CharctersetEncodingTest.runtest(CharctersetEncodingTest.java:124)

> 
>     at 
> org.apache.axis2.engine.CharctersetEncodingTest.testSimpleString(CharctersetEncodingTest.java:128)

> 
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
> 
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

> 
>     at 
> com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:31)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
> 
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

> 
>     at com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
> Caused by: org.apache.axis2.AxisFault: Connection reset; nested 
> exception is:     java.net.SocketException: Connection reset
>     at 
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:189)

> 
>     at 
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:109)

> 
>     ... 30 more
> Caused by: java.net.SocketException: Connection reset
>     at java.net.SocketInputStream.read(SocketInputStream.java:168)
>     at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
>     at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
>     at 
> org.apache.commons.httpclient.HttpConnection.isResponseAvailable(HttpConnection.java:897)

> 
>     at 
> org.apache.commons.httpclient.HttpMethodBase.readResponseBody(HttpMethodBase.java:1691)

> 
>     at 
> org.apache.commons.httpclient.HttpMethodBase.readResponseBody(HttpMethodBase.java:1634)

> 
>     at 
> org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1597) 
> 
>     at 
> org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:995) 
> 
>     at 
> org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:393)

> 
>     at 
> org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:168)

> 
>     at 
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:393)
>     at 
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
>     at 
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.transportConfigurationPOST(CommonsHTTPTransportSender.java:401)

> 
>     at 
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:167)

> 
>     ... 31 more
> 
> ======================================
> 
> which is initiated from HTTPClient.excuiteMethod()
> 
> But the test case work nicely with other environments such as Windos XP 
> JVM/1.4. Some other Linux distros experiancing the "connection reset" 
> problem occationally.
> Would someone help us to sort out this problem. Does this has to do with 
> the JVM i'm using in my Env.
> Saminda
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org
> 
> 

-- 
[web]  http://www.odi.ch/
[blog] http://www.odi.ch/weblog/
[pgp]  key 0x81CF3416
        finger print F2B1 B21F F056 D53E 5D79  A5AF 02BE 70F5 81CF 3416

---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org


Mime
View raw message