Hi Quinton.

I put Peter's solution in the wiki on the T2.3 Migration/VelocityOnlyLayout
page:

http://nagoya.apache.org/wiki/apachewiki.cgi?JakartaTurbine2/VelocityOnlyLay
out

I have not started using the 2.3/head version yet (our next project will!),
so I am a little behind.  I would like to set some time aside to make sure
the wiki has the recent strand about the Service Feature Replacements from
Henning.

Thanks,

Ck

> -----Original Message-----
> From: Quinton McCombs [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, March 19, 2003 1:32 PM
> To: Turbine Developers List
> Subject: RE: Direct Response and IllegalStateException
>
>
> Chris -
>   I hope that you are following this thread as a possible candidate for
> a how-to....
>
> > -----Original Message-----
> > From: Peter Courcoux [mailto:[EMAIL PROTECTED]
> > Sent: Wednesday, March 19, 2003 2:20 PM
> > To: Turbine Developers List
> > Subject: Re: Direct Response and IllegalStateException
> >
> >
> > Henning,
> >
> >
> > On Wed, 2003-03-19 at 13:12, Henning P. Schmiedehausen wrote:
> > > Peter Courcoux <[EMAIL PROTECTED]> writes:
> > >
> > > >Hi all,
> > >
> > > >I have recently changed from using turbine 2.2-b3 to 2.2.1
> > and from
> > > >using VelocityECSLayout to VelocityOnlyLayout.
> > >
> > > Actually, I'm getting more and more unhappy with the deprecation of
> > > VelocityECSLayout. There seem to be many quirks that can't
> > be fixed in
> > > a clean manner. We might have to think about this a little more.
> > >
> > > >One of my actions which extends VelocitySecureAction
> > handles a file
> > > >download by obtaining the HttpServletResponse setting the
> > headers and
> > > >then obtaining and writing directly to the ServletOutputStream.
> > >
> > > >Before the changes outlined above this caused no problem.
> > Having made
> > > >the changes the following Exception occurs after the completion of
> > > >the download and closing the ServletOutputStream.
> > >
> > > Could you please post some code snippets. How do you do the file
> > > download? Directly from the action (you shouldn't do that)
> > or do you
> > > have a screen which does the download to which you redirect? I'm
> > > getting a little scared by reading that you try to manipulate the
> > > Servlet output stream by yourself. :-)
> > >
> > >   Regards
> > >           Henning
> >
> > As mentioned off-list, I have a need to build a zip file of
> > multiple download files and the easiest way I have found is
> > to directly manipulate the ServletOutputStream. This also
> > applies where I am building images for embedding within pages
> > of data.
> >
> > I have solved this by creating a DirectResponseLayout class
> > which does nothing except check that declareDirectResponse()
> > has been called on
> > RunData. I then call
> >
> > data.setLayout("DirectResponseLayout");
> >
> > in my Action class.
> >
> > Source of DirectResponseLayout :-
> >
> > package com.whatever.modules.layouts;
> >
> > // Turbine Classes
> > import org.apache.turbine.modules.Layout;
> > import org.apache.turbine.util.RunData;
> >
> > /**
> >  * This layout allows an action to manipulate the
> >  * ServletOutputStream directly. It requires that
> >  * data.declareDirectResponse() has been called to
> >  * indicate that the OutputStream is being
> >  * handled else an Exception is thrown
> >  *
> >  * @author <a href="mailto:[EMAIL PROTECTED]">Peter
> > Courcoux</a>  */ public class DirectResponseLayout extends Layout {
> >     /**
> >      * Method called by LayoutLoader.
> >      *
> >      * @param RunData
> >      */
> >     public void doBuild( RunData data ) throws Exception
> >     {
> >         if (!data.isOutSet())
> >             {
> >                 throw new Exception(
> >                     "data.declareDirectResponse() has not
> > been called");
> >             }
> >     }
> > }
> >
> >
> >
> > One drawback is that it calls data.isOutSet() which is deprecated.
> >
> > Questions.
> >
> > 1. Is there a better way?
> > 2. If not, would it be worth including the
> > DirectResponseLayout class in
> >     the turbine distribution.
> > 3. Is there a case for removing the deprecation of
> > RunData.isOutSet()?
> > 4. Is this worth documenting. At least one other user appears to be
> >     doing something similar.
> >
> > Regards
> >
> > Peter
> > --
> > Peter Courcoux <[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]

Reply via email to