2009-10-22 3 views
2

Мой магазин уже несколько лет работает на сервере приложений Oracle. Таким образом, до того, как мы узнали об этом, мы разработали норму наличия файлов конфигурации приложений, хранящихся вне WAR-файла, и каталог приложений для каждого приложения добавлен в каждое приложение с использованием дескриптора развертывания Oracle. Этот дескриптор развертывания позволяет нам добавлять элементы classpath на уровне приложения, а не включать все зависимости в WAR.Добавить элементы в класс приложений (WAR) в WebLogic 10?

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

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

Возможно ли это в WebLogic 10?

ответ

0

Насколько мне известно, это невозможно с помощью Weblogic. Внешние файлы конфигурации действительно должны быть добавлены к system classpath. Вы можете немного настроить загрузчик классов (см. filtering и loading order), но нет ничего, что позволяет добавлять зависимости на уровне приложения «a la OAS». Для этого вам придется запускать разделенные домены, если упомянутый выше сценарий не является вариантом.

1

Внешние банки могут ссылаться на развертывания с использованием разделяемых библиотек.

Грубые внешние банки должны быть «развернуты» как библиотеки. Затем на них можно ссылаться из weblogic-application.xml вашего приложения, используя дескрипторы библиотеки-ref.

см. Этот doc.

Хотя, я не думаю, что вы можете предоставить внешние каталоги/файлы конфигурации, кроме как с помощью системного пути.

5

После дальнейших исследований мы узнали о функции WebLogic Generic File Loading Overrides.

Эта функция позволяет нам использовать План развертывания для нашего приложения и указать «config-root» для приложения. Внутри config-root мы можем создать каталог под названием «AppFileOverrides» и переопределить любой файл в каталогах WEB-INF/classes или WEB-INF/lib.

Эта функция работает путем инъекции загрузчика классов непосредственно перед загрузчиком классов Web Application, поэтому любой ресурс, загруженный из пути к классам, будет найден в этом загрузчике классов до того, как все будет включено в архив веб-приложений.

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

Вперед, я призываю наших разработчиков включать конфигурации в военный файл, но это будет хорошо работать для устаревших приложений и для ситуаций, когда нам нужно изменить конфигурацию для заданного целевого объекта развертывания (dev vs production)

 Смежные вопросы

  • Нет связанных вопросов^_^