Zulfi, According to the log the request body does get written to the socket output stream:
[DEBUG] wire - ->> "<SOAP-ENV:Envelope ... ello></SOAP-ENV:Body></SOAP-ENV:Envelope>" So, really I do not think this has anything to do with HttpClient given the data. Do try out different settings: CONTENT_LENGTH_AUTO and CONTENT_LENGTH_CHUNKED and see if that makes any difference. I suggest you try to reproduce the problem using a simple (or as simple as possible) test case, something which I could also run locally on my machine. I am afraid we will be unable to help you unless you manage to narrow the problem down, at least somewhat Cheers, Oleg On Sat, 2004-10-09 at 00:10, Zulfi Umrani wrote: > Hi Oleg, > I am setting the request body as InputStream, but I do set the > Content-Length header as well. I do print out the bytes for body as > string before I call executeMethod and I do see the body being printed > even for the transaction in question. The InputStream for body is > created out of those bytes. I have enabled full wire(header and content) > + context logging by setting the following properties. Log is once again > attahced for the transaction in question. Let me know if I have to set > some other property as well. > > System.setProperty("org.apache.commons.logging.Log", > org.apache.commons.logging.impl.SimpleLog"); > System.setProperty("org.apache.commons.logging.simplelog.showdatetime", > "true"); > System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire", > "debug"); > System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", > "debug"); > > > Thanks, > Zulfi > >>> [EMAIL PROTECTED] 10/8/2004 1:25:07 PM >>> > Zulfi, > > My only guess is that this is a thread synchronization related > problem, > as the problem appears to be irregular. > > How do you set the request body? As an InputStream? How do you set the > content length? Explicitly or as CONTENT_LENGTH_AUTO? Can it be that > the > input stream is exhausted before HttpClient has a chance to send its > content across the wire? > > Can you send me the context/wire log for the HTTP transaction in > question? > > Oleg > > On Fri, 2004-10-08 at 22:10, Zulfi Umrani wrote: > > Hi Oleg, > > Yes, the connection is closed by the server. But it is closed > because > > the HttpClient did not send it the request BODY. The problem is that > > occasionally HttpClient does not send the request as I described. For > a > > few times, it does send the request and then it just doesnt send it, > but > > only once. And then it is back to sending request body. The server > tries > > to read the body but can not, hence it closes the connection for the > > reuqest which had no body and had Content-Length header value > 1. I > > have sent you the reuqest in error from the tunnel. Looks like it > sent > > the Content-Length header, but not the body of the request. > > > > Hope this helps, > > Zulfi > > >>> [EMAIL PROTECTED] 10/8/2004 12:46:04 PM >>> > > Zulfi > > > > HttpRecoverableException: "Software caused connection abort: recv > > failed" usually means that the connection was closed on the server > > side > > while HttpClient was still reading the response. The is more likely > to > > be the server side problem. > > > > What exactly do you mean by "occasionally HttpClient does not send > the > > request body". Does it throw an exception, or blocks, or something > > else? > > > > Oleg > > > > > > On Fri, 2004-10-08 at 19:53, Zulfi Umrani wrote: > > > I am getting the following exception for redirect responses from > > > HttpClient. Attached is the log from HttpClient. I know that > > HttpClient > > > does not support redirect directly, hence we have written some > code > > to > > > handle that. The problem seems to be that, occasionally HttpClient > > does > > > not send the request body though it writes out the Content-Length > > > header. If you send the same request one after another by starting > a > > new > > > JVM for each request, such as running a client from commandline, > you > > > will see that, it sends the request body for a few times and then > it > > > does not send it once and then it starts to send it again. This > > behavior > > > keeps repeating. Below is the request sent out by HttpClient and > > > response received by it, captured through a tunnel. I will > appreciate > > if > > > someone can explain the behavior. > > > > > > Exception in thread "main" java.rmi.RemoteException: > > > java.net.SocketException: S > > > oftware caused connection abort: recv failed; nested exception is: > > > org.apache.commons.httpclient.HttpRecoverableException: > > > java.net.SocketE > > > xception: Software caused connection abort: recv failed > > > at > > > > > > com.sssw.jbroker.web.ServiceException.mapToRemote(ServiceException.ja > > > va:92) > > > at > > hello.HelloBinding_Stub.sayHello(HelloBinding_Stub.java:85) > > > at hello.Client.main(Client.java:25) > > > Caused by: org.apache.commons.httpclient.HttpRecoverableException: > > > java.net.Sock > > > etException: Software caused connection abort: recv failed > > > at > > > > > > org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodB > > > ase.java:1965) > > > at > > > > > > org.apache.commons.httpclient.HttpMethodBase.processRequest(HttpMetho > > > dBase.java:2659) > > > at > > > > > > org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.j > > > ava:1093) > > > at > > > > > > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav > > > a:675) > > > at > > > > > > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav > > > a:558) > > > > > > Request going out from HttpClient: > > > POST /services/hello HTTP/1.1 > > > SOAPAction: "http://www.hello/sayHello" > > > Content-Type: text/xml; charset=utf-8 > > > Connection: keep-alive > > > User-Agent: Jakarta Commons-HttpClient/2.0final > > > Host: 840serv7:54892 > > > Content-Length: 421 > > > > > > Response received by HttpClient: > > > HTTP/1.1 307 redirected > > > Set-Cookie: dispatch-http-rt=840serv7:80; path=/; > > > Content-Length: 0 > > > Location: http://840serv7:80/services/hello > > > > > > Thanks, > > > Zulfi > > > > > > > > > ______________________________________________________________________ > > > > > > --------------------------------------------------------------------- > > > 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] > > > > > > > --------------------------------------------------------------------- > > 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] > > > ______________________________________________________________________ > --------------------------------------------------------------------- > 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]