Загрузка ресурсного пакета из нестандартного местоположения в Struts2 - PullRequest
2 голосов
/ 04 августа 2010

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

LocalizedTextUtil.clearDefaultResourceBundles();
LocalizedTextUtil.addDefaultResourceBundle("struts/resources");

, но он будет выглядеть только в расположении struts2 по умолчанию

Любое решение, взлом, обходной путь приветствуется.

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Я нашел решение

сначала в struts.properties struts.custom.i18n.resources = globalMessages
затем добавьте приведенный ниже код в ваш StartupServlet или другое место, которое будет выполняться там, где серверначало

    URL[] urls;
    try {
        File file = new File("/your path");
        URL url = file.toURI().toURL();          
        urls = new URL[]{url};

        ClassLoader cl = new URLClassLoader(urls);
        LocalizedTextUtil.setDelegatedClassLoader(cl);
        LocalizedTextUtil.addDefaultResourceBundle("globalMessages");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
0 голосов
/ 17 августа 2010

Вы можете достичь этого следующим образом: 1. Скажите распоркам использовать определенный набор свойств.2. Добавьте его в classpath

Пример:

В Struts.properties :

....
struts.custom.i18n.resources=globalMessages
....

Создать globalMessages.properties (и любой локальсвязки, такие как globalMessages_ru_RU.properties), поместите комплект (ы) в папку с именем /app_conf/i18n и, наконец, поместите каталог /app_conf/i18n в путь к классам.

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