«Не удается найти источник конфигурации» при использовании XMLConfiguration с общей конфигурацией с Tomcat - PullRequest
4 голосов
/ 23 декабря 2010

Я создаю два приложения, которые используют конфигурацию commons XMLConfiguration.Поскольку приложения связаны между собой, я создал другой проект, называемый commons, в котором есть специальный менеджер конфигурации, который инициализирует XMLConfiguration следующим образом:

config = new XMLConfiguration("conf/config.xml");

В результате работает приложение «командной строки».нормально, загрузка файла конфигурации.Но когда я пытаюсь использовать свой собственный менеджер конфигурации в веб-приложении (используя Tomcat), я получаю

org.apache.commons.configuration.ConfigurationException: Невозможно найти источник конфигурации

Я поместил каталог conf в папку WEB-INF, корневую папку и папку META-INF.Я также пытался с "/conf/config.xml", "./conf/config.xml" и "../conf/config.xml".

Единственный раз, когда я заставил это работать - в веб-приложении - использовал абсолютный путь.

Что мне не хватает?

Спасибо, Бруно

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

На самом деле, org.apache.commons.configuration.XMLConfiguration не имеет конструктора, который принимает InputStream, поэтому getClass().getResourceAsStream() не будет работать.Однако существует конструктор XMLConfiguration, который принимает URL, поэтому вместо него используйте getClass().getResource().

См. http://commons.apache.org/configuration/apidocs/org/apache/commons/configuration/XMLConfiguration.html

2 голосов
/ 23 декабря 2010

Используйте ServletContext.getResourceAsStream(..) и передайте поток.Или, если файл находится в пути к классам, вы можете использовать getClass().getResourceAsStream(..)

...