Hello All,

I get the following error, when I try downloading files through the File 
download Struts2 application. I have given the Configuration detail and the 
Action class. Could someone take a look and let me know where this breaks?


Thank you,
Senthil



javax.servlet.ServletException: java.lang.IllegalArgumentException: Can not find a 
java.io.InputStream with the name [inputStream] in the invocation stack. Check the <param 
name="inputName"> tag specified for this action.
        
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
        
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)

*root cause*

java.lang.IllegalArgumentException: Can not find a java.io.InputStream with the name 
[inputStream] in the invocation stack. Check the <param name="inputName"> tag 
specified for this action.
        
org.apache.struts2.dispatcher.StreamResult.doExecute(StreamResult.java:189)
        
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
        
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:343)
        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
        
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
        
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
        
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)


*Configuration*

       <action name="FileDownloadAction" class="com.FileDownloadAction">
                <interceptor-ref name="basicStack"/>
           <result name="success" type="stream">
               <param name="inputName">inputStream</param>
           </result>
</action>
*Download Action Class*

public class FileDownloadAction implements Action {

   private String inputPath;
   private String contentType;
   private String inputName;
   private String contentDisposition;
   private String fileId;
private int bufferSize; public void setInputPath(String value) {
       inputPath = value;
   }

   public InputStream getInputStream() throws Exception {
       return 
ServletActionContext.getServletContext().getResourceAsStream(inputPath);
   }

   public String execute() throws Exception {
       return SUCCESS;
   }

        /**
         * @return the bufferSize
         */
        public int getBufferSize() {
                return bufferSize;
        }

        /**
         * @param bufferSize the bufferSize to set
         */
        public void setBufferSize(int bufferSize) {
                this.bufferSize = 4096;
        }

        /**
         * @return the contentDisposition
         */
        public String getContentDisposition() {
                return contentDisposition;
        }

        /**
         * @param contentDisposition the contentDisposition to set
         */
        public void setContentDisposition(String contentDisposition) {
                this.contentDisposition = "filename=\"portal_logo.jpg\"";
        }

        /**
         * @return the contentType
         */
        public String getContentType() {
                return contentType;
        }

        /**
         * @param contentType the contentType to set
         */
        public void setContentType(String contentType) {
                this.contentType = "image/jpeg";
        }

        /**
         * @return the inputName
         */
        public String getInputName() {
                return inputName;
        }

        /**
         * @param inputName the inputName to set
         */
        public void setInputName(String inputName) {
                this.inputName = inputName;
        }

        /**
         * @return the inputPath
         */
        public String getInputPath() {
                return inputPath;
        }

        /**
         * @return the fileId
         */
        public String getFileId() {
                return fileId;
        }

        /**
         * @param fileId the fileId to set
         */
        public void setFileId(String fileId) {
                this.fileId = fileId;
        }


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to