JSP работает в контейнере сервлетов, поэтому его текущий рабочий каталог определяется контейнером. Обычно это каталог, в котором установлен контейнер, или его каталог bin. В любом случае это не то место, где вы хотите хранить свой файл пользовательских свойств.
Есть 2 типичных подхода к тому, что вам нужно.
Первый подход хорош, если ваш файл является частью вашего приложения и вы никогда не меняете его при развертывании. В этом случае прочитайте его из ресурсов:
props.load(getClass().getResourceAsStream())
или даже лучше
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream())
*
Второй подход хорош, если вы хотите изменить файл свойств в среде развертывания.
*. В этом случае поместите его где-нибудь в файловой системе за пределами вашего контейнера. Например, /opt/mycompany/conf/myproperties.properties в Linux или в любом другом месте, которое вам нравится. Теперь вы должны использовать абсолютный путь при создании FileInputStream.
Чтобы сделать систему более конфигурируемой, вы не должны указывать путь к файлу конфигурации внутри кода. Лучший подход - передать его приложению, используя системные свойства, например. добавьте параметр, например -Dmycompany.conf=/opt/mycompany/myprops.properties, когда вы запускаете свой сервер приложений. Если вы хотите прочитать файл, сделайте следующее:
новый FileInputStream(System.getProperties("mycompany.conf"))
Теперь конфигурация вашей системы может независимо контролироваться развертывателем.
person
VAYU
schedule
08.08.2018