You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Craig Pfeifer <CE...@aethersystems.com> on 2001/04/02 19:56:13 UTC

FW: tomcat-user : tomcat 3.2 returning partial page

Hello -

We're currently having a problem w/Tomcat not returning the complete content
back to the client. The behavior we are seeing on a request is:

- client makes a request to servlet
- server processes request
- client receives approx the first 1/2 of the page as the response
- when you hit 'refresh' in the browser (IE or Netscape) you immediately
receive the second half of the previous response, along with the HTTP
headers and full content of the  second response rendered in the browser.

This behavior is repeatable with both IE and Netscape browsers. However, we
do not see this behavior when using Allaire's JRun 3.0 servlet engine.

More specifically, our situation is this :

- an HTTP request comes into our servlet
- this request is packaged up and passed via CORBA to our application server
- the server processes the request and returns a byte[] via CORBA
- we send the response back to the client in the servlet via the code:

    // responsePage is a CORBA container class for the application server's
response
    // set servlet's response headers:
    // the content length header is the same as the length of the byte array
    res.setContentLength(responsePage.body.length);
    // iterate through the name value pairs and set them in the servlet
headers
    NVPArrayToHeaders(responsePage.head.headers, res);

    try
    {
      // get servlet response's output stream & send server response byte
array
      ServletOutputStream sos = res.getOutputStream();
      sos.write(responsePage.body);
      sos.flush();
      sos.close();
    }
    catch (IOException e)
    {
      myLogger.logHTTPError(ServletError.SERVLET_IO_ERROR,res);
      myLogger.logError(ServletError.SERVLET_IO_ERROR,e);
    }

We have verified that the headers are correct and well formed(by dumping
them to the console), and that the entire response document is contained in
the byte array coming back from the CORBA method (by dumping it to a file).
Am I misusing the ServletOutputStream? Should I wrap the ServletOutpurStream
object with a BufferedOutputStream?

Any help/insights would be appreciated,

Craig Pfeifer


Craig Pfeifer
Software Engineer
Aether Systems, Software Products Division
703.847.3303 x2053
cepfeifer@aethersystems.com