我有下面的代碼片段:爲什麼ServletContext#getRealPath(「/」)返回一個相對路徑?
String path = servletContext.getRealPath("/");
現在,我得到了來自用戶的錯誤報告說,返回的路徑是不是絕對路徑。 返回的路徑是'usr/local/...
'而不是'/usr/local/...'
,因此getRealPath
似乎正在返回相對路徑。
我可以看到這一點,因爲返回的路徑被記錄到日誌文件中。
我的規格是:
- JBoss的4.0.5.GA
- 紅帽EL 4
- JDK 1.5.0
見here適用於Javadoc
你確定你的日誌不只是下降的第一個字符由於某些原因?你可以調試到應用程序並檢查結果嗎?如果所有這些都失敗了,您可以在Sun查看有關此問題的錯誤報告。 – cjstehno 2009-09-11 17:02:14
沒有不幸的不是。 1:它是一個簡單的日誌語句:log.debug(「path:」+ path); 2:稍後在應用程序中,一些代碼嘗試在該路徑下查找文件:new File(servletContext.getRealPath(「/)+ ...); file.exists()返回false 好雖然我會檢查bug報告 – 2009-09-11 19:03:19
你提到你正在使用JBoss,但是哪個web容器?它默認使用Jetty,但現在Tomcat我認爲...你也可以檢查這個問題bug數據庫和/或論壇的實際使用的網絡容器,因爲它是他們的實現......早先沒有想到。 – cjstehno 2009-09-11 19:59:44