我需要閱讀glassfish 4應用程序中的屬性文件。該文件需要位於應用程序中的某個位置(即不在文件系統中的某個隨機位置)。閱讀glassfish上的屬性文件4
如果有問題,我正在用eclipse開發,這個項目是用maven構建的,而這個工件是一場戰爭。
在我看來,爲了完成這項工作,我需要知道三件事情。
1)原始文件需要在哪裏?
2)該文件需要在哪裏結束?
3)如何讀取它?在
WEB-INF/classes/version.properties
我不知道這是否是正確的位置
src/main/resources/version.properties
該結束了:
到目前爲止,我創建的文件。
基於類似的問題,我已經定義了一個的ServletContextListener:
public class ServletContextClass implements ServletContextListener {
...
@Override
public void contextInitialized(ServletContextEvent arg0) {
ServletContext ctx = arg0.getServletContext();
InputStream istream = ctx.getResourceAsStream("version.properties");
// at this point, istream is null
Properties p = new Properties();
p.load(istream);
}
}
我不知道如果我有錯地方的文件,如果我讀錯了,或兩者兼而有之。
更新:下面的 「作品」:
@Override
public void contextInitialized(ServletContextEvent arg0) {
ResourceBundle bundle = ResourceBundle.getBundle("version");
if (bundle == null) {
logger.info("bundle is null");
} else {
logger.info("bundle is not null");
logger.info("version: " + bundle.getString("myversion"));
}
}
不過,我不認爲這是正確的解決方案。 Bundles是用於語言環境支持的,並且不屬於該類別。
更新2:我更正了文件結束的位置。