You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Wyn Easton <wy...@yahoo.com> on 2000/11/14 14:47:05 UTC
RE: Please Look - 3.2 beta 7 problem - RequestDispatcher inclu de()
Fair enough.
I did notice the addition of:
// NOTE: This *must* be done before the include flag is set for
// this request!
response.flushBuffer();
in RequestDispatcherImpl.java. That is probably the change that made
my include - forward stop working.
I guess it is OK by the spec. to do multiple include() method calls?
Thanks.
--- Kitching Simon <Si...@orange.ch> wrote:
>
>
> > -----Original Message-----
> > From: Wyn Easton [SMTP:wyn_easton@yahoo.com]
> > Sent: Tuesday, November 14, 2000 12:24 PM
> > To: tomcat-user@jakarta.apache.org
> > Subject: Please Look - 3.2 beta 7 problem - RequestDispatcher
> > include()
> >
> > Are you not suppose to mix URL access with a RequestDispatcher?
> > Thanks.
> >
> > Also, in 3.2 beta 6 I could do an include() then a forward().
> > Now in 3.2 beta 7 I get an illegalState error on the forward()
> > because of an open outputstream. I'm not opening an output stream.
> > The include() must be doing it.
> >
> [Kitching Simon]
> I don't think that it is valid to do include then forward, ie
> if it was possible before, then *that* was the bug, not
> the current behaviour.
>
> To quote from the servlet docs:
>
> forward should be called before the response has been committed
> to the client (before response body output has been flushed).
> If the response already has been committed, this method throws
> an IllegalStateException.
>
> Now I can't find the reference for the moment, but I'm sure that in
> the
> specs somewhere it says that the buffer is *always* flushed before
> an include operation.
>
> Therefore it is not possible, *by definition* to do an include then
> a forward.
> >
> > --- Wyn Easton <wy...@yahoo.com> wrote:
> > > I'm having this problem on 3.2 beta 7
> > >
> > > The exact text of the exception is:
> > >
> > > java.lang.IllegalArgumentException: Short Read
> > >
> > > This Exception is being generated in HttpUtils.java in the
> > > parsePostData() method.
> > >
> > > Here is what is happening:
> > >
> > > I'm opening a HttpURLConnection to servlet_A that has been set to
> use
> > > the POST method by calling setRequestMethod("POST") for the
> > > HttpURLConnection. In servlet_A I get a ServletInputStream and
> > > read from the HttpURLConnection.
> > > I then get an ServletOutputStream from the response.
> > > I then get a RequestDispatcher for servlet_B.
> > > When I call the include() method I get the exception mentioned
> > > because parsePostData() in HttpUtils tries to read "len" number
> > > of bytes from the ServletInputStream "in" and there is nothing
> > > to read. I changed parsePostData() in HttpUtils to return an
> > > empty Hashtable for this case and it worked fine.
> > > (Maybe this is how this should work since nothing read means no
> > > parameters in the POST data. Even if the len is greater than 0.)
> > >
> > > However, if I try to use the ServletOutputStream after returning
> > > to servlet_A from servlet_B nothing is written to the original
> > > HttpURLConnection. I don't know if the ServletOutputStream is
> > > being closed when I return from the include(). I don't get an
> > > Exception when writing to the ServletOutputStream. I just don't
> > > get any data at the listening end of the HttpURLConnection.
> > >
> > > I'm going to modify my code to use the include() instead of
> > > the HttpURLConnection, but shouldn't it work either way?
> > >
> > > Thanks.
> > >
> > >
> > > =====
> > > Wyn Easton
> > > wyn_easton@yahoo.com
=====
Wyn Easton
wyn_easton@yahoo.com
__________________________________________________
Do You Yahoo!?
Yahoo! Calendar - Get organized for the holidays!
http://calendar.yahoo.com/
Re: Please Look - 3.2 beta 7 problem - RequestDispatcher inclu de()
Posted by "Craig R. McClanahan" <Cr...@eng.sun.com>.
Wyn Easton wrote:
>
> I guess it is OK by the spec. to do multiple include() method calls?
>
Yes.
>
> Thanks.
>
Craig McClanahan