You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by rbtechno <ba...@gmail.com> on 2007/11/07 15:12:20 UTC
how to create background process
Hi,
I need to implement file download functionality in struts application.
when user submits a filedownload request, FileProcessAction should delegate
the download process to another thread which runs as background process and
return to some other page without waiting for file download completion.How
to do it ?
Thanks..
--
View this message in context: http://www.nabble.com/how-to-create-background-process-tf4764950.html#a13627829
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: how to create background process
Posted by Wes Wannemacher <we...@wantii.com>.
If this is struts2, take a look at the executeandwait interceptor -
http://struts.apache.org/2.0.11/docs/execute-and-wait-interceptor.html
-W
On 11/7/07, rbtechno <ba...@gmail.com> wrote:
>
>
> Hi,
>
> I need to implement file download functionality in struts application.
> when user submits a filedownload request, FileProcessAction should delegate
> the download process to another thread which runs as background process and
> return to some other page without waiting for file download completion.How
> to do it ?
>
>
> Thanks..
> --
> View this message in context: http://www.nabble.com/how-to-create-background-process-tf4764950.html#a13627829
> Sent from the Struts - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
--
Wesley Wannemacher
President, Head Engineer/Consultant
WanTii, Inc.
http://www.wantii.com
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: how to create background process
Posted by Wes Wannemacher <we...@wantii.com>.
To be honest, I don't think I fully understood the request the first
time I read it. In re-reading the original post, I wonder if you are
looking for functionality similar to the sourceforge download page...
Are you hoping to start the user's browser downloading, but rather
than waiting for the download to complete, present a page to the user
at the same time? If I understand correctly, it is similar to the
experience that I get from sourceforge (and probably a million other
sites with significant downloads). To do that, it is much easier than
you think. Present the page you want the user to see, then redirect
the user to the download directly (* make sure to munge the headers...
stuff like content-disposition: attachment). The user will see the
content you want them to see, and since the redirect goes straight to
a download, the page that's loaded doesn't change.
I haven't taken a close look, but I think that's how it works :)
-Wes
On 11/7/07, Giovanni Azua <gi...@imc.nl> wrote:
> Hi,
>
> Martin Gainty wrote:
> > Encapsulate the long running resource in run() method of a Thread here is a
> > good example
> > http://java.sun.com/developer/technicalArticles/Threads/applet/
> >
> > M--
> >
> I think the Java Servlet specification discourages such misbehavior
> (creating threads explicitly):
>
> Copied from Java Servlet Spec Version 2.5 Page 14:
>
> "A servlet container may place security restrictions on the environment
> in which a servlet
> executes. In a Java Platform, Standard Edition (J2SE, v.1.3 or above) or
> Java Platform,
> Enterprise Edition (Java EE, v.1.3 or above) environment, these
> restrictions should
> be placed using the permission architecture defined by the Java
> platform. For example,
> high-end application servers may limit the creation of a Thread object
> to insure that
> other components of the container are not negatively impacted."
>
> That you could spawn thread within Tomcat does not mean you should.
>
> I think too that executeandwait would be the way to go, the showcase
> includes an example.
>
> To achieve an executeandNOTwait asynchronous effect my wild guess would
> be in this
> case to spawn a hidden action that is not associated with any view so
> the user will not
> notice it is being executed (giving the asynchronous effect).
> Implicitly you are spawning
> a new thread within the Servlet container but in a safe way. I think the
> executeandwait
> would not apply in this case because the user does not would not want to
> see the
> outcome of the action i.e. wait for it to complete.
>
> For the second case probably the way would be adding to the relevant JSP
> something like:
> <s:action name="fileDownloadAsync" executeResult="false" /> or is there
> a cleaner way in S2.
>
> regards,
> Giovanni
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
--
Wesley Wannemacher
President, Head Engineer/Consultant
WanTii, Inc.
http://www.wantii.com
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: how to create background process
Posted by Giovanni Azua <gi...@imc.nl>.
Hi,
Martin Gainty wrote:
> Encapsulate the long running resource in run() method of a Thread here is a
> good example
> http://java.sun.com/developer/technicalArticles/Threads/applet/
>
> M--
>
I think the Java Servlet specification discourages such misbehavior
(creating threads explicitly):
Copied from Java Servlet Spec Version 2.5 Page 14:
"A servlet container may place security restrictions on the environment
in which a servlet
executes. In a Java Platform, Standard Edition (J2SE, v.1.3 or above) or
Java Platform,
Enterprise Edition (Java EE, v.1.3 or above) environment, these
restrictions should
be placed using the permission architecture defined by the Java
platform. For example,
high-end application servers may limit the creation of a Thread object
to insure that
other components of the container are not negatively impacted."
That you could spawn thread within Tomcat does not mean you should.
I think too that executeandwait would be the way to go, the showcase
includes an example.
To achieve an executeandNOTwait asynchronous effect my wild guess would
be in this
case to spawn a hidden action that is not associated with any view so
the user will not
notice it is being executed (giving the asynchronous effect).
Implicitly you are spawning
a new thread within the Servlet container but in a safe way. I think the
executeandwait
would not apply in this case because the user does not would not want to
see the
outcome of the action i.e. wait for it to complete.
For the second case probably the way would be adding to the relevant JSP
something like:
<s:action name="fileDownloadAsync" executeResult="false" /> or is there
a cleaner way in S2.
regards,
Giovanni
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org