2012-04-26 2 views
2

я положил файл со свойствами до * tomcat_folder */конф и попытаться прочитать:прочитанной conf.properties файл из веб-приложения под Tomcat

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

Но на самом деле я получаю «нуль». Я попытался распечатать текущую папку, и она показывает папку «home/username» (я хотел попасть в папку conf из текущего).

«catalina.properties» содержит «shared.loader =», так что теоретически этот файл следует читать в любом случае, но это не так ...

Есть ли решение о том, как это сделать?

ответ

2

Я нашел решение. я добавил $ {catalina.home}/конф к catalina.properties -> shared.loader

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

И

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

начал правильно открыть.

0

Я не думаю, что загрузчик классов, который вы получаете при вызове this.getClass(). GetClassloader() является общим. На самом деле это зависит от того, где «это».

Я не уверен, что вы сможете получить этот файл через classloader, хотя я думаю, что нынешний загрузчик классов должен делегировать. Вы можете, возможно, получить общий загрузчик классов через некоторый tomcat api.

Вы можете попробовать свойство CATALINA_HOME/BASE, чтобы перейти к файлу через файловую систему.

0

Попробуйте

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

работает для меня на JBoss 6.

+0

Нет, я все еще ищу файл .properties в/home/username. – Dragon

Смежные вопросы