По какой-то причине файл messages.properties находится где-то в папке WEB-INF
, но за пределами папки WEB-INF/classes
. В частности, путь к файлу /WEB-INF/messages/messages.properties. Как загрузить этот пакет ресурсов с помощью метода ResourceBundle.getBundle( ? )
?
Загрузка пакета ресурсов вне папки WEB-INF / classes
comment
Это может помочь: stackoverflow.com/questions/1172424/
- person home   schedule 30.11.2012
comment
так как только папка классов находится в пути к классам, единственный возможный способ, который я вижу, - это каким-то образом переопределить загрузчик классов Tomcat. Простой способ - поместить папку сообщений в каталог классов.
- person Subin Sebastian   schedule 30.11.2012
Ответы (2)
Вы можете получить путь с помощью контекста сервлета следующим образом;
getServletContext().getResource("/messages/messages.properties).getPath();
затем с помощью URLClassLoader () создайте загрузчик класса и передайте его методу getBundle ().
person
dinukadev
schedule
30.11.2012
Я просто собрал расширение ResourceBundle.Control, которое обрабатывает именно эту ситуацию:
https://gist.github.com/Tzrlk/82d74c074e63955a8a35
использование:
ServletContext servletContext = //! get access to servlet context instance
Locale locale = //! get access to locale instance
try {
ResourceBundle.Control control = new ServletContextBundleControl(servletContext);
ResourceBundle bundle = ResourceBundle.getBundle("/WEB-INF/messages/messages", locale, control);
} catch (MissingResourceException error) {
// handle exception
}
person
tzrlk
schedule
03.12.2014