I'll have to investigate this.

On 8/21/07, Jose Luis Martinez Avial <[EMAIL PROTECTED]>
wrote:
>
> The question is that I don't need to forward to a JSP. The controller
> takes the HttpServletResponse and writes in it, and that is the response
> to the user. Before that I put the image as an attribute in the request,
> and in a JSP template I recovered it form the request, and wrote it, but
> the tomcat always said that the Output stream had already been closed.
>
> Is there anyway to return a image to the user using a controller without
> using a JSP?
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> On Behalf Of Paul Benedict
> Sent: Tuesday, August 21, 2007 18:18 PM
> To: Struts Users Mailing List
> Subject: Re: Tiles: definition without path
>
> I don't understand why you haven't provided a path attribute on the
> definition. Definitions need to resolve to a resource. I don't see a JSP
> listed.
>
> On 8/21/07, Jose Luis Martinez Avial <[EMAIL PROTECTED]>
> wrote:
> >
> > I'm using Struts 1.3.9, with Tiles. I've one action that calls to a
> > definition
> > struts-config.xml
> >        <action path="/customer/verGraphPortfolio"
> > forward="verGraphPortfolio.pantalla"/>
> >
> > riles-def..xml
> >        <definition name=" verGraphPortfolio.pantalla"
> >
> controllerClass="com.bpi.isis.customer.web.vista.PortfolioValGraphContro
> > ller"/>
> >
> >        In the PortfolioValGraphController I have this code
> >
> >                 ....
> >                 response.setHeader("Content-Disposition", "inline");
> >                 response.setHeader("Cache-Control", "no-cache");
> >                 response.setHeader("Cache-Control", "no-store");
> >                 response.setHeader("Cache-Control",
> "must-revalidate");
> >                 response.getOutputStream().write(baos.toByteArray());
> >                 response.getOutputStream().flush();
> >                 response.getOutputStream().close();
> >                 response.setStatus(HttpServletResponse.SC_OK);
> >                 baos.close();
> >                 baos = null;
> >                 .....
> >
> > If I don't put the path attribute in the definition, the controller is
> > not invocated and the user doesn't see the image. In the logs your can
> > see this:
> >
> > 21 Aug 2007 13:11:36,711  DEBUG
> > org.apache.struts.tiles.ComponentDefinition  - Controller created :
> > [EMAIL PROTECTED]
> > 21 Aug 2007 13:11:36,711  DEBUG
> > org.apache.struts.tiles.commands.TilesPreProcessor  - no uri computed,
> > so pass to next command
> > 21 Aug 2007 13:11:36,711  DEBUG
> > org.apache.struts.chain.commands.ActionCommandBase  - Executing
> > org.apache.struts.chain.commands.servlet.PerformForward
> > 21 Aug 2007 13:11:36,711  DEBUG org.apache.struts.util.RequestUtils  -
> > No actionId found for verGraphPortfolio.pantalla
> > 21 Aug 2007 13:11:36,711  DEBUG
> > org.apache.struts.chain.commands.ExceptionCatcher  - Attempting to
> > handle a thrown exception
> > 21 Aug 2007 13:11:36,711  DEBUG
> > org.apache.struts.chain.commands.ExceptionCatcher  - Calling
> > exceptionCommand 'servlet-exception'
> > 21 Aug 2007 13:11:36,711  DEBUG
> > org.apache.struts.chain.commands.ActionCommandBase  - Executing
> > org.apache.struts.chain.commands.servlet.ExceptionHandler
> > 21 Aug 2007 13:11:36,711  DEBUG
> > org.apache.struts.chain.commands.AbstractExceptionHandler  - See if
> > actionConfig
> >
> ActionConfig[cancellable=false,path=/customer/verGraphPortfolio,validate
> > =true,forward=verGraphPortfolio.pantalla,scope=session has an
> > exceptionConfig for java.lang.IllegalArgumentException
> > 21 Aug 2007 13:11:36,711  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look locally for java.lang.IllegalArgumentException
> > 21 Aug 2007 13:11:36,711  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look globally for java.lang.IllegalArgumentException
> > 21 Aug 2007 13:11:36,711  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look locally for java.lang.RuntimeException
> > 21 Aug 2007 13:11:36,711  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look globally for java.lang.RuntimeException
> > 21 Aug 2007 13:11:36,711  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look locally for java.lang.Exception
> > 21 Aug 2007 13:11:36,711  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look globally for java.lang.Exception
> > 21 Aug 2007 13:11:36,711  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look locally for java.lang.Throwable
> > 21 Aug 2007 13:11:36,711  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look globally for java.lang.Throwable
> > 21 Aug 2007 13:11:36,711  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look locally for java.lang.Object
> > 21 Aug 2007 13:11:36,711  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look globally for java.lang.Object
> > 21 Aug 2007 13:11:36,711  WARN
> > org.apache.struts.chain.commands.AbstractExceptionHandler  - Unhandled
> > exception
> > java.lang.IllegalArgumentException: Path verGraphPortfolio.pantalla
> does
> > not start with a "/" character
> >         at
> >
> org.apache.catalina.core.ApplicationContext.getRequestDispatcher(Applica
> > tionContext.java:379)
> >         at
> >
> org.apache.catalina.core.ApplicationContextFacade.getRequestDispatcher(A
> > pplicationContextFacade.java:195)
> >         at
> >
> org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(
> > PerformForward.java:107)
> >         at
> >
> org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformF
> > orward.java:96)
> >
> >
> >
> >
> > If I put path = "", then the controller is invocated, and the user see
> > the image, but you see this logs
> > 21 Aug 2007 13:11:28,320  INFO
> > org.apache.struts.tiles.commands.TilesPreProcessor  - Tiles process
> > complete; forward to
> > 21 Aug 2007 13:11:28,320  DEBUG
> > org.apache.struts.chain.commands.ExceptionCatcher  - Attempting to
> > handle a thrown exception
> > 21 Aug 2007 13:11:28,320  DEBUG
> > org.apache.struts.chain.commands.ExceptionCatcher  - Calling
> > exceptionCommand 'servlet-exception'
> > 21 Aug 2007 13:11:28,320  DEBUG
> > org.apache.struts.chain.commands.ActionCommandBase  - Executing
> > org.apache.struts.chain.commands.servlet.ExceptionHandler
> > 21 Aug 2007 13:11:28,320  DEBUG
> > org.apache.struts.chain.commands.AbstractExceptionHandler  - See if
> > actionConfig
> >
> ActionConfig[cancellable=false,path=/divisas/verGraphExchRate,validate=t
> > rue,forward=verGraphExchRate.pantalla,scope=session has an
> > exceptionConfig for java.lang.IllegalArgumentException
> > 21 Aug 2007 13:11:28,320  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look locally for java.lang.IllegalArgumentException
> > 21 Aug 2007 13:11:28,320  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look globally for java.lang.IllegalArgumentException
> > 21 Aug 2007 13:11:28,320  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look locally for java.lang.RuntimeException
> > 21 Aug 2007 13:11:28,320  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look globally for java.lang.RuntimeException
> > 21 Aug 2007 13:11:28,320  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look locally for java.lang.Exception
> > 21 Aug 2007 13:11:28,320  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look globally for java.lang.Exception
> > 21 Aug 2007 13:11:28,320  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look locally for java.lang.Throwable
> > 21 Aug 2007 13:11:28,320  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look globally for java.lang.Throwable
> > 21 Aug 2007 13:11:28,320  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look locally for java.lang.Object
> > 21 Aug 2007 13:11:28,320  DEBUG org.apache.struts.config.ActionConfig
> -
> > findException: look globally for java.lang.Object
> > 21 Aug 2007 13:11:28,320  WARN
> > org.apache.struts.chain.commands.AbstractExceptionHandler  - Unhandled
> > exception
> > java.lang.IllegalArgumentException: Path  does not start with a "/"
> > character
> >         at
> >
> org.apache.catalina.core.ApplicationContext.getRequestDispatcher(Applica
> > tionContext.java:379)
> >         at
> >
> org.apache.catalina.core.ApplicationContextFacade.getRequestDispatcher(A
> > pplicationContextFacade.java:195)
> >         at
> >
> org.apache.struts.tiles.commands.TilesPreProcessor.getRequiredDispatcher
> > (TilesPreProcessor.java:274)
> >         at
> >
> org.apache.struts.tiles.commands.TilesPreProcessor.doForward(TilesPrePro
> > cessor.java:257)
> >         at
> >
> org.apache.struts.tiles.commands.TilesPreProcessor.execute(TilesPreProce
> > ssor.java:217)
> >         at
> > org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
> >         at
> >
> org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.jav
> > a:304)
> >
> > Do I need to put a JSP in the path? An empty JSP? Is there any way to
> > avoid this?
> >
> >
> > Internet communications are not secure and therefore Banco
> > Santander International does not accept legal responsibility for
> > the contents of this message. Any views or opinions presented are
> > solely those of the author and do not necessarily represent those
> > of Banco Santander International unless otherwise specifically
> > stated.
> >
> > Las comunicaciones via Internet no son seguras y por lo tanto
> > Banco Santander International no asume responsabilidad legal ni
> > de ningun otro tipo por el contenido de este mensaje. Cualquier
> > opinion transmitida pertenece unicamente al autor y no
> > necesariamente representa la opinion del Banco Santander
> > International a no ser que este expresamente detallado.
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> Internet communications are not secure and therefore Banco
> Santander International does not accept legal responsibility for
> the contents of this message. Any views or opinions presented are
> solely those of the author and do not necessarily represent those
> of Banco Santander International unless otherwise specifically
> stated.
>
> Las comunicaciones via Internet no son seguras y por lo tanto
> Banco Santander International no asume responsabilidad legal ni
> de ningun otro tipo por el contenido de este mensaje. Cualquier
> opinion transmitida pertenece unicamente al autor y no
> necesariamente representa la opinion del Banco Santander
> International a no ser que este expresamente detallado.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to