Статьи

Создание планов развертывания с Oracle WebLogic

Создание планов развертывания

Планы развертывания являются частью стандарта развертывания 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 .

Нажмите кнопку « Изменить путь» , связанную с путем плана развертывания, как показано ниже:

1

Теперь выберите переключатель для нового файла plan.xml и нажмите «Далее». При необходимости используйте гиперссылки рядом с полем «Текущее местоположение», чтобы перейти в каталог <APP_HOME>.

2

На следующем экране выберите переключатель «Повторно разверните это приложение, используя следующие файлы развертывания». Затем нажмите Готово. Теперь ваше приложение должно быть доступно с использованием нового веб-контекста (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:

3

Затем щелкните свое приложение и перейдите на вкладку « Конфигурация ». В нижней части экрана вы сможете изменить параметры приложения, такие как путь к контекстному корню . Измените это значение на новый контекстный путь и сохраните.

4

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

5

Последним шагом будет настройка файла plan.xml , как мы показали ранее, и обновление вашего приложения с использованием этого файла.

http://www.itbuzzpress.com/ Этот отрывок взят из «Руководства по корпоративным серверам приложений », которое представляет собой практическое и простое для понимания руководство, в котором рассматриваются три основных отраслевых сервера приложений на рынке Java EE: Oracle Weblogic , JBoss EAP и IBM Websphere . Эта книга, включающая 600 страниц полезных рецептов, обещает рассказать вам о трех серверах приложений, используя приятный стиль и подробное сравнение между ними.