【发布时间】:2014-02-06 21:14:18
【问题描述】:
我需要在 glassfish 4 应用程序中读取属性文件。该文件需要位于应用程序中的某个位置(即不在文件系统中的某个随机位置)。
如果重要的话,我是用eclipse开发,项目用maven构建,神器就是一场战争。
在我看来,要完成这项工作,我需要知道三件事。
1) 原始文件需要放在哪里?
2) 文件需要在哪里结束?
3) 如何阅读?
到目前为止,我创建了文件:
src/main/resources/version.properties
以
结束WEB-INF/classes/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"));
}
}
但是,我认为这不是正确的解决方案。捆绑包用于支持语言环境,不属于该类别。
更新 2:我更正了文件结束的位置。
【问题讨论】: