Jim,
Thanks for your help.
I am not setting the content-length on my servlet
code.
But if I see the response headers (using firebug) I
have this result :
Content-Length: 4332
Content-Type: text/html
But another tool I have show me the page size as 4276.
If I print the size of my response with :
s.getBytes().length
(where s is my response, see code on previous message)
I get the value 4276.
So I think you can be right on the cause of the
problem.
But how is the right way of set the content lenght ?
I try this :
// other data headers
response.setDateHeader ("Expires", 0);
response.setContentType("text/html");
String s = ... // creates JSON String
response.setContentLength(s.getBytes().length);
PrintWriter w = response.getWriter();
w.write(s);
response.setStatus(HttpServletResponse.SC_OK);
The problem still happens.
Then I try this :
byte[] data = s.getBytes();
response.setContentLength(data.length);
ServletOutputStream ouputStream =
response.getOutputStream();
ouputStream.write(data, 0, data.length);
ouputStream.flush();
ouputStream.close();
response.setStatus(HttpServletResponse.SC_OK);
But still no solution.
The response header keep showing Content-Length=4332.
How I can set the Content-Length in a reliable way ?
>From where this 4332 value comes from ?
Danilo.
--- Jim Cox <[EMAIL PROTECTED]> wrote:
> Does the client get a "Content-length" header, and
> if so does the actual
> length of the response body match? If not it has to
> either timeout or wait
> for the server to close the connection.
>
> On Wed, Apr 16, 2008 at 11:33 AM, Danilo Luiz
> Rheinheimer <
> [EMAIL PROTECTED]> wrote:
>
> > Hi,
> >
> > I have a Java application running on a Tomcat
> server
> > (last version of the 5.5 serie). Java version is
> 6.
> > I have a servlet inside this application who
> returns
> > json to the browser (if you do not know json it is
> > just a text).
> > This process it taking a very long time,
> something
> > like 10 seconds.
> > I put some simple debug code inside my servlet to
> > show how much time the servlet takes to process
> it.
> > The time is short like 0.5 seconds.
> > Still to the browser it takes 10 seconds !
> > If I type the servlet url on the browser I can
> see
> > it returns the result fast (the json shows on the
> > browser screen after 0.5 seconds).
> > But it do not release the http connection to the
> > server. It keeps the message 'receiving data from
> ...'
> > on the botton of the browser for almost 10
> seconds.
> > There are not a big load on the server at the
> moment
> > of this tests. In fact it is only me.
> >
> > The resumed servlet code is something like this :
> >
> >
> response.setHeader("Cache-Control","no-cache");
> > response.setHeader("Pragma","no-cache");
> > response.setDateHeader ("Expires", -1);
> >
> response.setHeader("Cache-Control","no-store");
> > response.setDateHeader ("Expires", 0);
> >
> > response.setContentType("text/html");
> >
> > String s = ... // creates JSON String
> > PrintWriter w = response.getWriter();
> > w.write(s);
> >
> > As you can see very standard I think.
> > I have the no cache headers because the json is
> > generated at every time and can not be cahed.
> >
> > Someone has any idea of what the problem is ?
> >
> > Danilo.
> >
> >
> >
> >
>
____________________________________________________________________________________
> > Be a better friend, newshound, and
> > know-it-all with Yahoo! Mobile. Try it now.
> >
>
http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
> >
> >
>
---------------------------------------------------------------------
> > To start a new topic, e-mail:
> [email protected]
> > To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> > For additional commands, e-mail:
> [EMAIL PROTECTED]
> >
> >
>
____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now.
http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
---------------------------------------------------------------------
To start a new topic, e-mail: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]