Can not find a java.io.InputStream with the name [downloadFile]

来源:互联网 发布:什么是数据切片 编辑:程序博客网 时间:2024/06/03 16:37

转载: http://scorpiomiracle.iteye.com/blog/583387


tomcat报错如下: 

严重: Can not find a java.io.InputStream with the name [downloadFile] in the invocation stack. Check the <param name="inputName"> tag specified for this action. 

  出现这种错误一般只有两种可能: 
  1.文件路径不对,根本就没有取到文件,这种情况下,可以将获得InputStream的那条语句放在system.out.println()中输出一下,若为null,那就是路径不对了,或者说得准确些,就是根本没有找到文件。 
  2.在action中没有写对应于 配置文件中“ <param name="inputName"> ”后面属性的get方法,如本例就应该写public InputStream getDownloadFile()方法 

附: 
  我也采用了视频和网络上用的最多的方法来返回输入流,如下: 
Java代码  收藏代码
  1. return ServletActionContext.getServletContext().getResourceAsStream("……");  

  但是不管怎么弄,都是报如上错误。在一博客上看到,“对ServletContext的getResourceAsStream方法认识有误,该方法不是从本地路径取文件,而是tomcat的工程路径下取文件流”,如“/WEB-INF/download/file.*”。此刻才恍然大悟,我要下载的文件就是位于其他路径,之前分析报错原因总认为肯定是配置的错误。然后,照其所说,一试,果然控制台输出为null,怪不得,于是改为如下方式获得文件流。 

Java代码  收藏代码
  1. File fileDes = new File(path);//path是要下载文件所在的路径,可以写成任意本地路径  
  2. InputStream is = new FileInputStream(fileDes);  
  3. return is;  
0 0
原创粉丝点击