首先,我已經通過在eclipse和tomcat 8.0.33獨立版本的mac上提取war文件(使用maven)來試用我的代碼。加載資源在本地工作,但不在服務器上
我也試過我的代碼在Windows服務器2008年與相同的Java版本1.8,它工作時,我把一些變量(這是用戶名和密碼)硬編碼,但是當我讓代碼讀取它們從一個reousrce文件,它只是我的Mac上工作(Eclipse和單獨的tomcat站),而不是在服務器上
這是代碼讀取資源
private static String getUsername() {
Properties prop = new Properties();
InputStream input = null;
try {
input = new FileInputStream(MyConfiguration.class.getClassLoader()
.getResource("configuration.properties").getFile());
// load a properties file
prop.load(input);
// get the property value and print it out
return prop.getProperty("username");
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
其中configuration.properties
的位置在src/main/resources
和服務器上,我可以看到該文件位於正確的目錄中。
我使用Maven的,我不知道你需要什麼其他信息來幫助我,但如果你說,我會給你
沒錯,沒有理由在這裏使用一個文件。當'configuration.properties'捆綁在一個war中時,你不能以File的形式訪問它。它在你的IDE中工作的原因是因爲你仍然可以作爲一個文件來訪問它。 https://issues.apache.org/jira/browse/SUREFIRE-855與此相關,它現在允許您使用artifact而不是classfolder進行測試,就像「在製作中」一樣。 –