Как загрузить файлы/свойства из каталога WEB-INF?

Кажется, что в моем приложении Tapestry я не могу загрузить ini-файлы или файл свойств из каталога WEB-INF или пути к классу.

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

  1. ex

realm.setResourcePath("/WEB-INF/auth.properties");

  1. ex

realm.setResourcePath("classpath:wip/pages/auth.properties");

Мне нужно загрузить файл свойств/ini, чтобы использовать модуль безопасности гобелена, основанный на Широ.

Спасибо за помощь !


person xyz    schedule 12.03.2012    source источник


Ответы (4)


Корень пути к классам - это путь. Поместите свой файл в src/main/resources/auth.properties, затем задайте свой resourcePath с помощью realm.setResourcePath("classpath:auth.properties");

Проверьте ExtendedPropertiesRealm и тестовое приложение Tapestry-Security для примера.

person ascandroli    schedule 12.03.2012
comment
Отличный друг, спасибо, это сработало как шарм ^^ Тем не менее я не знаю, почему это не сработало из WEB-INF :( - person xyz; 12.03.2012

Попробуйте ServletContext.getResourceAsStream("/WEB-INF/auth.properties") или ServletContext.getResourceAsStream("WEB-INF/auth.properties")

ServletContext должен использоваться из сервлета, servletListener и т. д.

person Andrzej Jozwik    schedule 12.03.2012
comment
Не работает :( Проверяю по: InputStream in = getClass().getResourceAsStream("classpath:wip/pages/auth.properties"); System.out.println(in); ServletContext.getResourceAsStream() тоже не работает. - person xyz; 12.03.2012
comment
Я нашел старое сообщение: Как загрузить ресурс из каталога WEB-INF веб-архива - person Andrzej Jozwik; 12.03.2012

Попробуйте

Properties props = new Properties();
props.load(new FileInputStream(new File(req.getServletContext().getRealPath("/WEB-INF/fileName.properties"))));
System.out.println(props);
person Abhisek Mohapatra    schedule 15.11.2015

Я обнаружил, что самым простым способом было

  • поместите файл в src/main/resources/config.properties. Это будет помещено в /WEB-INF/classes/config.properties, когда проект будет скомпилирован maven в WAR.

  • прочитайте файл из сервлета со следующим

    InputStreaminputStream = getClass().getClassLoader().getResourceAsStream("config.properties");

https://crunchify.com/java-properties-file-how-to-read-config-properties-values-in-java/

person Colin D    schedule 20.02.2018