从Tomcat下的Web应用程序中读取conf.properties文件

时间:2012-04-26 13:28:08

标签: java tomcat

我将带有属性的文件放到* tomcat_folder * / conf并尝试阅读:

InputStream input = this.getClass().getClassLoader().getResourceAsStream("conf.properties");
properties.load(input);

但实际上我收到'null'。我试图打印出当前文件夹,它显示“home / username”文件夹(我想从当前文件夹到conf文件夹)。

“catalina.properties”包含“shared.loader =”,所以理论上这个文件应该从那里读取,但它不是......

有没有解决方法如何做到这一点?

3 个答案:

答案 0 :(得分:2)

我找到了解决方案。 我将$ {catalina.home} / conf添加到catalina.properties - > shared.loader

shared.loader=${catalina.home}/conf

this.getClass().getClassLoader().getResourceAsStream("conf.properties");

开始正确打开。

答案 1 :(得分:0)

我不认为调用this.getClass()时得到的类加载器.getClassloader()是共享的。实际上它取决于“这个”的位置。

我不确定你是否能通过类加载器获取此文件,即使我认为当前的类加载器应该委托。你可以通过一些tomcat api获得共享的类加载器。

您可以尝试使用CATALINA_HOME / BASE属性通过文件系统访问该文件。

答案 2 :(得分:0)

尝试

properties.load(Thread.currentThread().getContextClassLoader().
        getResource("filename.properties").openStream());`

在JBoss 6上为我工作。