Вы поместили его в пакет servlets
, однако вы пытаетесь получить его из корня пути к классам. Ведущий /
делает путь относительно корня пути к классам.
Исправьте путь соответственно:
p.load(this.getClass().getClassLoader().getResourceAsStream("/servlets/a.properties"));
или, при условии, что текущий класс уже находится в servlets
пакете:
p.load(this.getClass().getClassLoader().getResourceAsStream("a.properties"));
Не имеет отношения к конкретной проблеме , может ли позже случиться так, что вы переместите файл свойств за пределы WAR во внешнее местоположение, что позволяет легко редактировать файл без необходимости каждый раз перестраивать / повторно развертывать, тогда Я бы предложил использовать загрузчик классов контекста потока вместо загрузчика классов текущего класса. Это будет работать при любых обстоятельствах:
p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("servlets/a.properties"));
(обратите внимание, что путь здесь не обязательно должен начинаться с /
, потому что он всегда относительно корня пути к классам)