У нас есть приложение JSF на WildFly 8, которое использует традиционный механизм с интернационализацией текста, имея пакеты сообщений для немецкого и английского языков в папке WEB-INF\classes
WAR и конфигурацию в faces-config.xml
, сопоставляя ему имя и список локалей. Приложение не имеет подключения к базе данных, но использует службы REST для связи со вторым приложением.Как разместить JSF-сообщение за пределами WAR, чтобы его можно было редактировать без перераспределения?
Теперь нам нужно иметь возможность изменять текст более легко, то есть не нужно создавать новый WAR-файл и выполнять развертывание при смене текста. Поэтому мне нужен механизм, чтобы иметь пакеты сообщений за пределами WAR, имея возможность использовать его, как и раньше, на страницах XHTML.
Два необязательных требования состоят в том, чтобы изменить текст и обновить сообщения в приложении без необходимости перезапуска приложения (приоритет 2) и иметь пул по умолчанию в WAR, который перезаписывается внешним пакетом (приоритет 3).
Моя мысль заключалась в том, чтобы использовать что-то вроде конфигурации сообщества Apache, чтобы прочитать файл свойств в компоненте с областью действия приложения и выставить геттер под именем EL, которое использовалось ранее. Но почему-то это похоже на необходимость повторного внедрения существующего механизма и что это должно быть как-то проще, может быть, даже с ядром Java EE.
Кто-нибудь использовал этот механизм таким образом и может указать мне на какой-то пример/описание деталей или лучше реализовать перечисленные требования?
Полезно? http://stackoverflow.com/q/4499732 – BalusC
@BalusC Ну, не рассматривали детали вопроса, когда спотыкались раньше, поскольку это относится к обработке его через базу данных, чего у меня здесь нет, но я думаю вы имеете в виду часть расширения «ResourceBundle»? Итак, в 'getItSomehow'part он должен быть загружен с помощью операции с файлом? В этом случае это может быть способ справиться с этим. Только два необязательных требования здесь не ясны. –
@BalusC Ok, 2) имеет смысл, 1) может быть неправильно понято - мне не нужно отражать изменения обратно в файл, но иметь возможность изменять файл, а затем запускать перезагрузку пакета. - Если вам нравится тратить время на то, чтобы ответить на комментарии, я рад назначить награду. –