ClassLoader.getSystemResourceAsStream не работает при запуске на Tomcat - PullRequest
3 голосов
/ 10 мая 2011

Я загружаю файл конфигурации, используя ClassLoader.getSystemResourceAsStream. Файл находится в папке src моего приложения GWT. Это заканчивается в war/WEB-INF/classes. Я копирую папку war в tomcat в webapps/MyApp. При запуске приложения getSystemResourceAsStream выдает исключение. При работе под Jetty работает нормально.

Ответы [ 3 ]

3 голосов
/ 10 мая 2011

Попробуйте:

getClass().getClassLoader().getResourceAsStream();

Это точно будет работать;У меня тоже была такая же проблема. Этот вопрос описывает, почему у вас возникла эта проблема.

1 голос
/ 10 мая 2011

Это должно работать:

Thread.currentThread().getContextClassLoader().getResourceAsStream( "relative/path" );

Обратите внимание, что относительный / путь - это путь относительно войны / WEB-INF / classes Например, если ваш файл - war / WEB-INF / classes / resources / my.свойства затем используют "resources / my.properties"

1 голос
/ 10 мая 2011

Попробуйте getClass().getResourceAsStream() вместо. Вам нужно вызвать этот метод для доступа к загрузчику классов для вашего веб-приложения. В вызываемом вами методе используется системный загрузчик классов, который, я думаю, будет содержать только классы для самого веб-контейнера.

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