Не удается прочитать файл свойств с веб-приложением (веб-приложение Maven с JSF)

У меня есть файл свойств: hibernate.properties внутри пакета по умолчанию. Я пытаюсь прочитать его из класса внутри другого пакета: com.somepackage.SomeClass.

В обычном настольном приложении работает следующий входной поток:

InputStream is = getClass().getResourceAsStream("/hibernate.properties");

Но с моим веб-приложением (веб-приложение maven, созданное с использованием Netbeans с JSF 2.2 в качестве зависимости)

Я пробовал эти альтернативы:

Использование класса:

getClass().getResourceAsStream("/hibernate.properties");

Использование внешнего контекста:

FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream("/hibernate.properties");

Использование загрузчика классов контекста:

Thread.currentThread().getContextClassLoader().getResourceAsStream("/hibernate.properties");

Каждый из них возвращает ноль. Как прочитать файл свойств внутри пакета по умолчанию?


person coolscitist    schedule 05.12.2013    source источник


Ответы (1)


Я предполагаю, что вы ищете неправильное место для файла. hibernate.properties обычно не сохраняется в корне развертывания. Откройте файл .war и найдите местоположение hibernate.properties. Если ваше приложение развернуто на localhost:8080/app1, вам нужно вызвать /app1/, чтобы получить доступ к содержимому вашего развертывания.

person Lukas Eichler    schedule 05.12.2013
comment
В порядке. как ни странно, когда я создал hibernate.cfg.xml из мастера Netbeans, он появился внутри: Другие источники (src/main/resources). Я предполагал, что это будет insde: «пакет по умолчанию». Позвольте мне поместить все ресурсы в src/main/resources - person coolscitist; 05.12.2013
comment
Просто откройте свой .war с помощью, например, winrar и посмотрите, где он находится на самом деле. - person Lukas Eichler; 05.12.2013
comment
Я сам создал файл hibernate.properties. - person coolscitist; 05.12.2013
comment
Я хочу сказать, что вам нужно посмотреть, как создается ваш .war. Просто место в .war имеет значение - person Lukas Eichler; 05.12.2013