Как мне использовать файл свойств с jax-rs? - PullRequest
2 голосов
/ 26 октября 2011

Я только начинал настраивать веб-сервис с jax-rs, работающими на Tomcat.Есть ли способ связать файл свойств с моим проектом Java (в Eclipse), чтобы я мог читать свойства из него во время выполнения?Также, если это возможно, где будет лучшее место для размещения (чтобы его нельзя было увидеть через URL), WebContent, WEB-INF и т. Д.

Ответы [ 2 ]

6 голосов
/ 26 октября 2011

Несколько опций:

Опция 1: Вы можете поместить его под своим classpath (в Eclipse поместите его в папку с исходными файлами), чтобы вы могли получить к нему доступ через Classloader: MyClass.class.getResourceAsStream("myproperties.properites")

Обратите внимание, что MyClass также должен находиться в той же исходной папке (на самом деле это немного сложнее, он должен быть в той же иерархии загрузчика классов, но любой класс из той же папки будет выполнять свою работу)

Вариант 2: Поместите его в папку WEB-INF.Это предпочтительный вариант, так как вам не нужно иметь дело с classpath.Вам потребуется ServletContext для доступа к нему: javax.servlet.ServletContext.getResourceAsStream("WEB-INF/myproperties.properites")

В jax-rs вы можете получить ServletContext, используя аннотацию @Context в любом зарегистрированном ресурсе или поставщике.

0 голосов
/ 28 февраля 2012

Для GlassFish 3.1 пользователей, я смог заставить работать оба варианта Tarlog, но мне пришлось использовать абсолютный путь к файлу.Для варианта 1 я поместил файл в папку «Исходные пакеты» в NetBeans, к которой я затем мог получить доступ через:

InputStream is = TestResource.class.getResourceAsStream("/test_model.js");

Для варианта 2 я поместил файл в WEB-INF и использовал:

@Context ServletContext servletContext;
InputStream is = servletContext.getResourceAsStream("/WEB-INF/test_model.js");

Без косой черты результат был нулевым.НТН

...