Файл свойств веб-службы Axis2 (архив) - PullRequest
0 голосов
/ 22 марта 2010

В настоящее время я разрабатываю набор веб-сервисов SOAP для Axis2 , развернутых в кластерной среде WebLogic 10.3.2.

Мои веб-сервисы используют некоторые пользовательские настройки, которые я хочу редактировать без необходимости перекомпиляции и регенерации архива AAR. Имея это в виду, я решил поместить их в properties файл, который загружается и используется во время выполнения.

К сожалению, у меня есть несколько вопросов по этому поводу:

Насколько я знаю, для достижения того, что я хочу, единственный вариант - поместить файл свойств в каталог ../axis2/WEB-INF/classes каждого из развертываний (в каждом экземпляре WebLogic ), который я на данный момент иметь в моей кластерной конфигурации, а затем загрузить файл, как показано ниже (или эквивалент, это не было проверено для оптимизации):

InputStreamReader fMainProp = new InputStreamReader(this.getClass().getResourceAsStream("myfile.properties"));
Properties mainProp = new Properties();
mainProp.load(fMainProp);

Это не так практично, как хотелось бы, потому что каждый раз, когда я хочу изменить какую-либо настройку в файле свойств, мне приходится редактировать каждый из файлов (развернутых в разных экземплярах WebLogic ) и существует большая вероятность изменения одного из этих файлов без изменения других.

Я хотел бы знать, есть ли (лучшая) альтернатива для достижения того, чего я хочу, минимизируя потенциальный конфликт конфигурации, который создается путем распространения и репликации файла свойств через несколько WebLogic экземпляров. .

Ответы [ 2 ]

0 голосов
/ 21 февраля 2015

Вы можете установить системную переменную в Weblogic для хранения в абсолютном месте файла свойств.При установке weblogic вы найдете setDomainEnv.cmd (Windows) или setDomainEnv.sh (Linux).Внутри этого добавьте (добавьте) к JAVA_OPTIONS системную переменную, которая вам нужна.Например,

-DpropLocation=C:/somewhere/The.properties 

В вашем коде вы можете получить местоположение файла свойств с помощью System.getProperties("propLocation"). Вы можете добавить несколько системных переменных, добавив между ними пробелы.

0 голосов
/ 30 марта 2010

Ваш вариант использования подходит для использования JMX.

См. Эту ссылку для получения подробной информации об использовании JMX для создания пользовательских Mbeans-компонентов для управления конфигурациями приложений. http://blogs.oracle.com/WebLogicServer/2009/10/developing_custom_mbeans_to_ma.html

Затем вы можете выбрать консольный или WLST-сценарий доступа.

...