我将带有属性的文件放到* tomcat_folder * / conf并尝试阅读:
InputStream input = this.getClass().getClassLoader().getResourceAsStream("conf.properties");
properties.load(input);
但实际上我收到'null'。我试图打印出当前文件夹,它显示“home / username”文件夹(我想从当前文件夹到conf文件夹)。
“catalina.properties”包含“shared.loader =”,所以理论上这个文件应该从那里读取,但它不是......
有没有解决方法如何做到这一点?
答案 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上为我工作。