2017-04-13 149 views
0

我有一個Web應用,在那裏我把一些PDF文件在被呈現給用戶,當他們點擊下載按鈕的資源文件夾中的PDF文件,這是我如何讀文件無法訪問的資源文件夾

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

然後我在響應中渲染文件,這在我在eclipse中運行時工作正常。

,但一旦我將其打包到war文件,並使用Apache Tomcat經理部署它,我不能訪問該文件了它爲我一個500錯誤指定的訪問文件無法訪問。

回答

-1

打開你的戰爭文件,手動檢查到「/ WEB-INF /班/」文件夾中的文件存在到這個文件夾或沒有。

0

如果我正確理解你的問題,那麼你就需要獲得流的資源和服務從資源響應,而不是從文件。類加載器具有功能的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應用程序的環境中工作的本地文件路徑。