Создание планов развертывания
Планы развертывания являются частью стандарта развертывания JSR-88 , хотя это явно не указано в этом стандарте. План развертывания — это документ XML, который определяет пользовательскую среду развертывания WebLogic Server. Эта конфигурация может использоваться для переопределения определенных параметров, определенных в архиве приложения.
Существует множество причин, по которым вы можете не захотеть изменять архив приложений, одна из которых — тестирование. Например, если вы успешно завершили тестирование для определенной версии приложения, желательно сохранить архив приложений без изменений между средами, чтобы вы могли быть более уверены, что приложение будет вести себя одинаково в нескольких средах при его продвижении. Другой причиной может быть мобильность. Вы можете иметь один общий архив приложений JEE без проприетарных дескрипторов развертывания и поместить все эти проприетарные значения дескриптора развертывания за пределы этого архива.
Существует несколько альтернатив для создания плана развертывания: начните с настройки вашей среды на включение пути к классам WLS:
1
|
C:\wls1211_dev\user_projects\domains\base_domain\bin>setDomainEnv.cmd |
Затем вы можете использовать утилиту PlanGenerator для создания плана развертывания вашего приложения.
1
2
3
4
5
6
7
|
java weblogic.PlanGenerator -all WLSDemo.ear Generating plan for application WLSDemo.ear Export option is: all Exporting properties... Saving plan to C:\wls1211_dev\user_projects\domains\base_domain\bin\plan.xml... < 8 -ago- 2012 11.52 . 48 CEST> <Info> <J2EE Deployment SPI> <BEA- 260072 > <Saved configuration for application, WLSDemo.ear> |
Давайте проверим файл plan.xml, который содержит все настройки приложения. Мы не будем включать весь файл plan.xml здесь, который является довольно многословным; однако мы будем включать в качестве примера, как настроить некоторые параметры, содержащиеся в нем.
План развертывания — это файл XML, который в основном определяет некоторые переменные с использованием уникальных имен и присваивает значения переменных конкретным элементам пользовательских дескрипторов развертывания. На конкретные элементы XML ссылаются с помощью выражений XPath .
Пример: настройка корневого контекста веб-приложения
Откройте файл plan.xml и отредактируйте его в текстовом редакторе. Затем найдите следующий элемент <variable> :
1
2
3
4
|
< variable > < name >WeblogicWebApp_ContextRoots_xxxxxxxxxxxxxx</ name > < value xsi:nil = "true" ></ value > </ variable > |
Обратите внимание, что xxxxxxxxxxxxxx фактически будет уникальным идентификатором, созданным Генератором плана, чтобы определить уникальное имя для переменной. В следующем примере мы заменим его значимым именем, на которое будет ссылаться файл.
Теперь отредактируйте приведенный выше фрагмент, чтобы он выглядел так:
1
2
3
4
|
< variable > < name >WeblogicWebApp_CustomContext</ name > < value >/newcontext</ value > </ variable > |
Далее в файле найдите элемент <variable-assignment>, который указывает на выражение XPath « weblogic-web-app / context-root», и измените имя переменной на «WeblogicWebApp_CustomContext», чтобы оно совпадало с вашей переменной:
1
2
3
4
5
6
|
< variable-assignment > < name >WeblogicWebApp_CustomContext</ name > < xpath >weblogic-web-app/context-root</ xpath > < origin >planbased</ origin > < operation >replace</ operation > </ variable-assignment > |
Также обратите внимание, что мы включили в него дополнительную операцию «замена», которая, очевидно, заменит контекст по умолчанию на новый («/ newcontext»).
Сохраните файл plan.xml. То, что мы только что сделали, — это переопределение элемента context-root в дескрипторе развертывания веб-приложения WebLogic Server — weblogic.xml. Корень нового контекста — «newcontext».
Хорошо, теперь переключитесь на консоль администрирования и выберите обновление приложения из меню Deployments .
Нажмите кнопку « Изменить путь» , связанную с путем плана развертывания, как показано ниже:
Теперь выберите переключатель для нового файла plan.xml и нажмите «Далее». При необходимости используйте гиперссылки рядом с полем «Текущее местоположение», чтобы перейти в каталог <APP_HOME>.
На следующем экране выберите переключатель «Повторно разверните это приложение, используя следующие файлы развертывания». Затем нажмите Готово. Теперь ваше приложение должно быть доступно с использованием нового веб-контекста (newcontext).
Пример: настройка модулей JDBC
Первый пример, который мы рассмотрели, является хорошей отправной точкой для создания дополнительных настроек. Одним из реальных примеров может быть предоставление плана развертывания, который обновляет информацию, содержащуюся в модуле JDBC, который является частью вашего приложения. Вполне вероятно, что ваше приложение будет распространяться в разных средах (разработка / производство / тестирование), где используются разные базы данных. Например:
1
2
3
4
|
< wls:resource-description > < wls:res-ref-name >JDBCOracleModule</ wls:res-ref-name > < wls:jndi-name >jdbc/OracleModule</ wls:jndi-name > </ wls:resource-description > |
В этом примере, если бы мы изменили имя JNDI, с которым связан модуль JDBC, нам нужно было бы изменить дескрипторы XML, где определено имя JNDI.
Вместо этого, используя план развертывания, вы можете просто изменить значение ресурсов JDBC в plan.xml и соответствующим образом обновить приложение. Предположим, мы хотим изменить привязку JNDI образца TestEJB при переносе приложения в производство, изменив его с « jdbc / OracleModule » на « jdbc / ProductionOracleModule».
Начните с создания плана развертывания plan.xml с помощью утилиты PlanGenerator . Теперь откройте файл plan.xml и задайте элемент value для вашего источника данных в переменной:
1
2
3
4
|
< variable > < name >MyDataSource_binding</ name > < value >jdbc/ProductionOracleModule</ value > </ variable > |
На указанное выше имя переменной («MyDataSource_binding») необходимо ссылаться в соответствующем разделе назначения переменных, который устанавливает правильную привязку JNDI для вашего ресурса:
01
02
03
04
05
06
07
08
09
10
|
< module-override > < module-name >TestEJB.jar</ module-name > . . . . . < uri >META-INF/weblogic-ejb-jar.xml</ uri > < variable-assignment > < name >MyDataSource_binding</ name > < xpath >/weblogic-ejb-jar/weblogic-enterprise-bean/[ejb-name="TestEJB"]/resource-description/[res-ref-name="MyDataSource"]/jndi-name</ xpath > </ variable-assignment > </ module-descriptor > </ module-override > |
Что если на источник данных также ссылаются в веб-приложениях, скажем, он внедряется в сервлет? не беспокойся! Вы можете предоставить переопределение модуля также для веб-модуля; в этом случае мы переопределим weblogic.xml:
01
02
03
04
05
06
07
08
09
10
11
|
< module-override > < module-name >wls.war</ module-name > . . . . < uri >WEB-INF/weblogic.xml</ uri > < variable-assignment > < name >MyDataSource_binding</ name > < xpath >/weblogic-web-app/resource-description/[res-ref-name="jdbc/ ProductionOracleModule "]/res-ref-name</ xpath > < origin >planbased</ origin > </ variable-assignment > </ module-descriptor > </ module-override > |
Генерация плана развертывания с использованием консоли администрирования
Если вы не хотите использовать командную строку для генерации плана развертывания, вы можете сделать это с помощью консоли администрирования. Перейдите к своему приложению с помощью опции Deployments:
Затем щелкните свое приложение и перейдите на вкладку « Конфигурация ». В нижней части экрана вы сможете изменить параметры приложения, такие как путь к контекстному корню . Измените это значение на новый контекстный путь и сохраните.
После того, как вы изменили некоторые значения конфигурации, появится помощник плана развертывания, который попросит вас сохранить эти изменения в плане развертывания. Все, что вам нужно сделать, это предоставить удобное расположение для файла (настоятельно рекомендуется использовать имя plan.xml ).
Последним шагом будет настройка файла plan.xml , как мы показали ранее, и обновление вашего приложения с использованием этого файла.
Этот отрывок взят из «Руководства по корпоративным серверам приложений », которое представляет собой практическое и простое для понимания руководство, в котором рассматриваются три основных отраслевых сервера приложений на рынке Java EE: Oracle Weblogic , JBoss EAP и IBM Websphere . Эта книга, включающая 600 страниц полезных рецептов, обещает рассказать вам о трех серверах приложений, используя приятный стиль и подробное сравнение между ними.