путь к файлу в WebApplication с использованием GlassFish - PullRequest
2 голосов
/ 27 августа 2009

Я использую класс для получения файла свойств в исходной папке. Но это не работает! После проверки я обнаружил, что путь по умолчанию с помощью

File f = new File("/src/ss.properties");

это не путь к веб-приложению, а путь к конфигурации Glassfish! Что я могу сделать, если я хочу получить файл свойств, хранящийся в пути «классы»? Знаете, обычно путь по умолчанию - это путь к проекту.

Я использовал ClassLoader.getResourceAsStream("sss"). Но он возвращает ноль! Я уверен, что имя файла правильное, потому что я пробовал его в другом простом приложении Java.

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

this.getClass().getClassLoader().getResourceAsStream("sectionMapping.properties");

вместо

ClassLoader.getSystemResource("sectionMapping.properties")

сделал свое дело! Интересно почему?

1 Ответ

5 голосов
/ 27 августа 2009

Вы должны использовать getResourceAsStream или подобное. См. этот пост о том, как получить доступ к ресурсам. (Это не зависит от Glassfish - оно применяется ко всем серверам приложений Java EE.)

См. Также эту статью о JavaWorld .

Обновление: Если ваш файл находится в папке src/ss.properties, убедитесь, что он скопирован в WEB-INF/classes. Затем вы сможете получить к нему доступ с помощью следующего кода:

InputStream propStream = ClassLoader.getResourceAsStream("ss.properties");

или (обратите внимание на начальный слеш при использовании метода в java.lang.Class)

InputStream propStream = Class.getResourceAsStream("/ss.properties");

Обратите внимание, что необходимо использовать полное имя файла (включая расширение .properties).

Если ни один из этих способов не работает, замените getResourceAsStream вызов на getResource(...).openStream() и опубликуйте подробности об исключении, которое должно быть выдано.

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