Загрузить файл ресурсов вне jar

Я создал банку, содержащую класс, который загружает файл внешнего ресурса из пути к классу моего веб-приложения. Мое приложение работает на сервере смолы. Я развернул свою банку в web-inf/lib, а мой файл ресурсов находится в папке web-inf/classes. Теперь доступ к файлу ресурсов осуществляется с помощью

getClass().getResourceAsStream("/resource-name.json");

Однако приложение выдает исключение нулевого указателя, когда я его запускаю. Может ли кто-нибудь объяснить мне, почему мой загрузчик классов не может найти этот файл ресурсов, расположенный в папке web-inf/classes? Я искал этот форум, но не нашел здесь ничего похожего на мою проблему.

Как всегда, я ценю ваши ответы и благодарю вас.


person user1639616    schedule 02.03.2015    source источник


Ответы (1)


Чтобы исследовать, сначала попробуйте распечатать все места, где ваш ClassLoader пытается загрузить классы/ресурсы:

((URLClassLoader) getClass().getClassLoader()).getURLs();

предполагая, что ClassLoader отставки расширяет URLClassLoader. Он должен содержать вашу папку.

person Crazyjavahacking    schedule 03.03.2015
comment
Спасибо Кражак. Ваш совет помог. Я отмечу это как ответ, поскольку он помог мне решить эту проблему, web-inf/classes действительно находится в пути к классам для смолы. В конечном итоге ошибка оказалась неправильным наименованием моего файла ресурсов. - person user1639616; 04.03.2015