You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Zhenxin wang <zh...@docomolabs-usa.com> on 2002/08/31 00:08:34 UTC
strange behavior about response object in container
Hi,
I am modifying the Tomcat 4.0.4 to make it a proxy cache server.
I am extending the container's (StandardHost) invoke(Request, Response) function to be able to forward a request if there is no cache for it. I use the apache commons-httpclient to implement the forwarding semantics.
While I implement the transfering of data from httpclient method object to the Response object, I noticed some strange behavior regarding the Response object.
What I did is first get a HttpServletResponse object reference from the Response object hresp, then I will call a loop of
resp.setHeader(....) ,
then I do
OutputStream os = resp.getOutputStream();
os.write(response_body_text_as_byte_array)
When the origin server is another Tomcat server, it does not work, however
if I comment out resp.setHeader(...), it is working (I mean the result shown in the browser)
I do the forwarding inside a servlet, even with rest.setHeader(...), it still works.
I wonder why is that? BTW, I am using IE 6 as browser.
I feel I should do the setting of headers, they may contain cookies and other info.
When I try against www.microsoft.com (url in the request), with header setting, it works,
without header setting, it does not. Quite the opposite of Tomcat.
When I try against www.yahoo.com, i find the same behavior as Tomcat.
I wonder how it is related to the origin server, the format of their response or version?
Thanks!
--Zhenxin Wang
DoCoMo Labs USA