2016-06-10 95 views
2

我試圖加載配置文件。但它不工作,我的配置文件被放在了WEB-INF文件夾找不到配置文件JAVA EE

,這裏是我的代碼加載的conf文件:

private static final String PROPERTIES_FILE = "/WEB-INF/dao.properties"; 
ClassLoader classloader = Thread.currentThread().getContextClassLoader(); 
     InputStream fichierProperties = classloader.getResourceAsStream(PROPERTIES_FILE); 

     if (fichierProperties == null) { 
      throw new DAOConfigurationException("file "+PROPERTIES_FILE+ " not found"); 
     } 

我總是收到此錯誤文件找不到,應該對構建路徑進行一些更改?

回答

1

對於簡單的目的,儘量

dao.propertiessrc文件夾(其中放源代碼)內。

更改爲

private static final String PROPERTIES_FILE = "dao.properties"; // <------- 
ClassLoader classloader = Thread.currentThread().getContextClassLoader();  
InputStream fichierProperties = classloader.getResourceAsStream(PROPERTIES_FILE); 

if (fichierProperties == null) { 
    throw new DAOConfigurationException("file "+PROPERTIES_FILE+ " not found"); 
} 
+0

謝謝爲您的答案!但我的配置文件將在src文件夾中的安全位置? –

+0

使用'classpath:'(例如,您可以使用'classpath'搜索Google,其關鍵字爲:'java classpath properties')。我爲你尋找一個很好的例子:http://crunchify.com/java-properties-file-how-to-read-config-properties-values-in-java/和http://stackoverflow.com/questions/ 9663564 /如何對負載的文件的屬性從 - WEB-INF目錄?LQ = 1 –

1

如果你把你的文件的WEB-INF目錄中,您可以使用上下文對象來讀取你的文件顯示,如果你有機會獲得servlet上下文

InputStream input = context.getResourceAsStream("/WEB-INF/dao.properties");