файл свойств в веб-приложении - PullRequest
3 голосов
/ 27 января 2011

Во-первых, существует множество решений, и я уже прочитал многие из них. Но почему-то у меня это не получается.

Я пытаюсь передать свои данные конфигурации для моего веб-приложения, чтобы я мог их отсканировать после развертывания.

Это мой сервис недвижимости:

   public class PropertiesService {

 Properties properties;
     public PropertiesService() {
      try {
       properties = new Properties();
       ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
       InputStream stream = classLoader.getResourceAsStream("META-INF/config.properties");
       properties.load(stream);
      } catch (Exception e) {
       e.printStackTrace();
      }
     }

     public String getHost(){
      return properties.getProperty("server_host");
     }

     public String getServerName(){
      return properties.getProperty("server_naming");
     }
    }

После отладки я заметил, что переменная stream остается нулевой! Но я не знаю почему -.-

Нужна помощь: -)

вот журнал ошибок:

java.lang.NullPointerException
 at java.util.Properties$LineReader.readLine(Properties.java:418)
 at java.util.Properties.load0(Properties.java:337)
 at java.util.Properties.load(Properties.java:325)

Обновление

Сейчас я делаю следующее:

properties.load(this.getClass().getResourceStream("/config/config.properties"));

И я все еще получаю исключение nullPointerException

1 Ответ

7 голосов
/ 27 января 2011

Извлеките из META-INF, поместите его в src/config прямо в конфигурационный пакет в исходном коде, при сборке он перейдет к /WEB-INF/classes/config/config.properties

и this.getClass().getResourceAsStream("/config/config.properties");

Обновление enter image description here

и затем я создал класс Service в том же проекте, у которого есть метод.

public static InputStream getConfigAsInputStream(){
    return Service.class.getResourceAsStream("/config/config.properties");
}

Это работает .. !!

Сравни свои

...