Расположение файла свойств XML в веб-приложении Java - PullRequest
1 голос
/ 14 сентября 2010

У меня есть веб-приложение на Java, а в сервлете мне нужно загрузить свойства из XML-файла.

Код

XMLReader reader = XMLReaderFactory.createXMLReader();
...       
FileInputStream fis = new FileInputStream("myconf.xml");
reader.parse(new InputSource(fis));

Мой вопрос: где файл myconf.xml должен быть помещен в файл war, чтобы сервлет мог его найти?

Спасибо

1 Ответ

5 голосов
/ 14 сентября 2010

Не используйте FileInputStream с относительным путем.Вы будете зависеть от текущего рабочего каталога, над которым у вас нет полного контроля внутри кода Java.Вместо этого поместите файл в путь к классам и используйте ClassLoader#getResourceAsStream().

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("/myconf.xml");

В этом примере предполагается, что файл находится в корне пути к классам.С точки зрения IDE это может быть корень папки src или корень папки /WEB-INF/classes.Вы даже можете поместить его где-то еще извне и добавить его (абсолютный!) Путь к пути к классу времени выполнения где-нибудь в конфигурации сервера.

См. Также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...