2016-02-02 42 views
0

我有一個Tomcat 7(.0.42)實例,它有lib/hosts目錄(在$ {catalina.base}中更具體),多個主機特定的屬性(例如qa1.properties,qa2.properties等)。

當試圖加載屬性文件,它使用:

applicationContext.getResource("classpath:hosts/qa1.properties").exists() 

失敗,因爲存在()返回。該文件顯然在主機子目錄下。如果文件被複制/移動到LIB目錄,它通過調用類似的代碼工作正常:

applicationContext.getResource("classpath:qa1.properties").exists() 

Spring的實現類使用ClassPathResource在這裏使用,其調用

return this.classLoader.getResource("hosts/qa1.properties"); 

和ClassLoader實例是org.apache.catalina.loader.WebappClassLoader

根據Spring規範,l ocation可以指定子目錄(如classpath:/ path/to/file)。它怎麼不在這裏工作?

回答

0

原來,主機子目錄丟失+ x權限。