您的位置:首页 > 编程语言 > Java开发

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

2014-03-27 16:50 661 查看
转载: /article/4312851.html

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代码


return ServletActionContext.getServletContext().getResourceAsStream("……");

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

Java代码


File fileDes = new File(path);//path是要下载文件所在的路径,可以写成任意本地路径

InputStream is = new FileInputStream(fileDes);

return is;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐