无法访问的资源文件夹

问题描述:

我有一个Web应用,在那里我把一些PDF文件在被呈现给用户,当他们点击下载按钮的资源文件夹中的PDF文件,这是我如何读文件无法访问的资源文件夹

ClassLoader classloader = Thread.currentThread().getContextLoader(); 
File f = new File(classloader.getResource("pdf/report.pdf").getFile); 

然后我在响应中渲染文件,这在我在eclipse中运行时工作正常。

,但一旦我将其打包到war文件,并使用Apache Tomcat经理部署它,我不能访问该文件了它为我一个500错误指定的访问文件无法访问。

打开你的战争文件,手动检查到“/ WEB-INF /班/”文件夹中的文件存在到这个文件夹或没有。

如果我正确理解你的问题,那么你就需要获得流的资源和服务从资源响应,而不是从文件。类加载器具有功能的getResourceAsStream这应该与相同参数的工作你都传递到的getResource

ClassLoader classloader = Thread.currentThread().getContextLoader(); 
InputStream stream = classloader.getResourceAsStream("pdf/report.pdf") 
// Copy resource stream to servlet response e.g. using Apache IOUTils 
IOUtils.copy(stream, <servelet response stream>) 
// Don't forget to close stream 

Eclipse中最喜欢的是解决这可能不是在相同的方式在Web应用程序的环境中工作的本地文件路径。