无法访问的资源文件夹
问题描述:
我有一个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应用程序的环境中工作的本地文件路径。