2013-04-17 32 views
1

工作,我存儲一些格式化擅長的位置ReportGeneratorJSF/WebContent/WEB-INF/FormattedExcel/*.xls。並閱讀它們,我使用了ServletContext的getRealPath("/WEB-INF/FormattedExcel/")。但是,從位置不ServletContext的真實路徑將WAR文件

'C:\Users\kgcn984\heliosworkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ReportGeneratorJSF\WEB-INF\FormattedExcel\...' 

其讀數雖然路徑應該是ReportGeneratorJSF/WebContent/WEB-INF/FormattedExcel/*.xls,但它的做工精細。

我的問題是當我創建一個戰爭文件,並把放在tomcat的webapps,它會成功工作,對不起,我不能試試這個,因爲我沒有系統權限放置在tomcat的webapps任何戰爭。

請回復。

回答

0

這將正常工作,當且僅當Tomcat的擴大了戰爭。

要使用該文件在所有情況下,你應該使用getResourceAsStream

如果您需要列出所有的Excel文檔,你可以使用getResourcePaths

+0

擴大了WAR:確實這意味着它應該基於目錄的,而不是單一war文件? 我試過了getResourceAsStream,但是它返回的是ByteArrayInputStream,在我的代碼中它的存在爲 .... 新的HSSFWorkbook(new FileInputStream(formatFile)); ... 路過的ByteArray ....沒有給編譯錯誤,但需要的格式cellstyle沒有得到應用於生成的過人之處。 – Soheb

+0

我不確定爲什麼'HSSFWorkbook'會出現'ByteArrayInputStream'問題,但這是另一個問題。允許Servlet容器在WAR中運行Web應用程序或擴展WAR - 由容器和/或服務器管理員設置使用哪種方法。 – mjaggard

+1

謝謝你的回覆 – Soheb

相關問題