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] 

[DEBUG] HttpConnection - -HttpConnection.setSoTimeout(0)
[DEBUG] wire - ->> "POST /services/hello HTTP/1.1[\r][\n]"
[DEBUG] wire - ->> "SOAPAction: "http://www.hello/sayHello"[\r][\n]";
[DEBUG] wire - ->> "Content-Type: text/xml; charset=utf-8[\r][\n]"
[DEBUG] wire - ->> "Connection: keep-alive[\r][\n]"
[DEBUG] wire - ->> "User-Agent: Jakarta Commons-HttpClient/2.0final[\r][\n]"
[DEBUG] wire - ->> "Host: localhost:9999[\r][\n]"
[DEBUG] wire - ->> "Content-Length: 421[\r][\n]"
[DEBUG] wire - ->> "[\r][\n]"
[DEBUG] wire - ->> "<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.or
g/soap/envelope/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http:/
/www.w3.org/2001/XMLSchema-instance' xmlns:SOAP-ENC='http://schemas.xmlsoap.org/
soap/encoding/'><SOAP-ENV:Body><ns1:sayHello SOAP-ENV:encodingStyle='http://sche
mas.xmlsoap.org/soap/encoding/' xmlns='' xmlns:ns1='http://www.hello'></ns1:sayH
ello></SOAP-ENV:Body></SOAP-ENV:Envelope>"


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

Reply via email to