You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Brian Thompson <el...@gmail.com> on 2007/03/21 22:41:35 UTC
[S2] Struts Showcase File Download
I'm trying to return a stream of binary data (like the image or .zip example
on http://www.planetstruts.org/struts2-showcase/filedownload/index.jsp) from
a Struts 2 action class, but I'm not sure how to configure my application to
get Struts to write the data directly to the response without trying to
route it through a jsp.
http://www.planetstruts.org/struts2-showcase/viewSource.action?page=/filedownload/index.jspseems
like it should do the trick, but it's missing the 2/3 of the
documentation that I need (the Action class source and the configuration).
Has anyone had any luck in getting this kind of behavior out of Struts 2?
-Brian
Re: [S2] Struts Showcase File Download
Posted by Brian Thompson <el...@gmail.com>.
After looking in the *source code* of the Struts showcase, I got the idea to
declare an action with a return type of "stream" and use a method like
public InputStream retrieveImage() throws Exception {
return ServletActionContext.getServletContext
().getResourceAsStream("images/403.jpg");
}
However, when I try this, an exception gets thrown:
java.lang.ClassCastException: java.io.ByteArrayInputStream
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(
DefaultActionInvocation.java:404)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(
DefaultActionInvocation.java:262)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(
DefaultActionInvocation.java:224)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(
DefaultWorkflowInterceptor.java:213)
(etc)
I'm really puzzled. Simply returning an input stream of binary data from a
file or database object shouldn't be a big problem...should it?
-Brian
On 3/21/07, Brian Thompson <el...@gmail.com> wrote:
>
> I'm trying to return a stream of binary data (like the image or .zip
> example on http://www.planetstruts.org/struts2-showcase/filedownload/index.jsp
> ) from a Struts 2 action class, but I'm not sure how to configure my
> application to get Struts to write the data directly to the response without
> trying to route it through a jsp.
>
>
> http://www.planetstruts.org/struts2-showcase/viewSource.action?page=/filedownload/index.jspseems like it should do the trick, but it's missing the 2/3 of the
> documentation that I need (the Action class source and the configuration).
>
> Has anyone had any luck in getting this kind of behavior out of Struts 2?
>
>
> -Brian
>