2013-09-09 3 views
1

У меня есть веб-приложение, развернутое на моем сервере tomcat. Моя структура папок - TOMCAT_HOME/webapps/segnalazioni_degrado/config.Tomcat - FileNotFoundException

В папке конфигурации содержатся некоторые файлы свойств. Когда я запускаю свое приложение в режиме разработки (Eclipse), все работает нормально, но поскольку я развернул его на Tomcat, я получаю исключение filenotfound. Это способ, которым я загрузить файл .properties на сервере:

[...] 
Properties props = new Properties(); 
    try { 
     props.load(new FileInputStream("config/DBconfig.properties")); 

    } catch (IOException e) { 
     System.out.println(e.getMessage()); 
    } 
    url = props.getProperty("url"); 
    user = props.getProperty("user"); 
    password = props.getProperty("password"); 
[...] 

Я делаю что-то не так?

ответ

2

У каждого webapp есть свой собственный загрузчик классов в tomcat. ClassLoader.getSystemResource будет использовать загрузчик системного класса, который используется для загрузки загрузочного буфера и приложения tomcat. Но загрузчик системного класса ничего не знает о вашем webapp и его пути к классам. Использование правильного загрузчика классов имеет важное значение.
Существует множество решений для доступа к правильному загрузчику классов. Одним из решений является использование ClassLoader#getResource.

Пожалуйста, смотрите в this example

+0

Ваше решение, в сочетании с одним из них, работало. Но мне пришлось вручную добавить папку классов в WEB-INF, поскольку она не генерируется, когда я GWT-компилирую мой проект ... знаете ли вы, почему? – Filippo

1

Я делаю что-то неправильно?

Очевидно, что да. Вы бы не стали исключением, если все было хорошо.

Вы должны загрузить этот ресурс как поток из пути к классам.

Это означает, что ваш WAR должен выглядеть следующим образом:

WEB-INF/classes/config/DBconfig.properties 

Поскольку вы используете Tomcat, я рекомендовал бы научиться настроить источник данных пула соединений JNDI. Таким образом, внешняя информация о подключении к базе данных.

+0

Что делать, если я не хочу, чтобы изменить структуру папок? – Filippo

+0

Тогда это не сработает. – duffymo