2009-07-01 67 views
4

我開發了一個在JBoss 4中正常工作的Web應用程序。現在,我需要使它在Tomcat 6中工作,但我無法訪問某些屬性文件。我用下面的代碼讀取讀取這些文件:在tomcat中從webapp檢索屬性文件的問題

InputStream is = Thread.currentThread().getContextClassLoader() 
       .getResourceAsStream(fileName); 
if (is == null) { 
    throw new StartupError("Error loading " + fileName); 
} 

properties.load(is); 

正如我以前說過的,它工作正常的JBoss 4.但是當我部署我在Tomcat中的應用程序,它沒有找到該文件,分配null爲'is'變量,導致引發StartupError。該文件位於WEB-INF/config目錄中,並且該webapp作爲戰爭部署。

這個問題的解決方案?

感謝, 亞歷山大

回答

3

把屬性文件在WEB-INF/classes中。

或者將它們包含在你的一個webapp Jar文件的根目錄下,儘管這會讓它更難編輯它們。如果您在構建腳本中選擇屬性,並且不希望在部署後編輯它們,這很好。

+0

嗨JeeBee, 你的解決方案確實工作。但是你知道爲什麼我能夠在JBoss的WEB-INF/config下訪問文件,並且無法在Tomcat中使用它? – Alexandre 2009-07-01 11:42:18

0

我假設Tomcat不會將WEB-INF/config添加到您的webapp類路徑中。

http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html

WebappX - 是對於被部署在單個的Tomcat 6實例中的每個web應用程序創建的類加載器。 Web應用程序歸檔文件的/ WEB-INF/classes目錄中的所有解壓縮類和資源,以及Web應用程序歸檔文件的/ WEB-INF/lib目錄下的JAR文件中的類和資源,都會被包含在Web應用程序中,但沒有其他人。