Стандартное для JavaEE развертывание приложений в WAR-файлы осуществляется с помощью задач сборки buildWar и createWarDistr. Рассмотрим пример сборки WAR-файлов и их развертывания на сервере Glassfish 4.
-
Добавляем в build.gradle задачи сборки WAR для модулей core и web:
configure(coreModule) { ... task buildWar(dependsOn: assemble, type: CubaWarBuilding) { appName = 'app-core' appHome = '${app.home}' } } configure(webModule) { ... task buildWar(dependsOn: assemble, type: CubaWarBuilding) { appName = 'app' appHome = '${app.home}' } }
-
Добавляем в
build.gradle
задачу сборки дистрибутива:task createWarDistr(dependsOn: [coreModule.buildWar, webModule.buildWar], type: CubaWarDistribution) { appHome = '${app.home}' }
-
Запускаем сборку:
gradlew createWarDistr
В результате в подкаталоге
build/war
проекта создаются домашний каталог с именем${app.home}
и файлыapp-core.war
иapp.war
. Имя домашнего каталога здесь роли не играет, так как реальное имя будет задаваться для сервера с помощью системной переменной Java. -
Копируем содержимое
build/war/${app.home}
на сервер, например в каталог/home/user/app_home
. -
Устанавливаем сервер Glassfish 4, например в каталог
/home/user/glassfish4
. -
Копируем JDBC-драйвер используемой базы данных в каталог
/home/user/glassfish4/glassfish/domains/domain1/lib
. Файл драйвера можно взять из каталогаlib
Studio, либо из каталогаbuild/tomcat/lib
проекта (если перед этим выполнялось быстрое развертывание в Tomcat). -
Запускаем сервер:
$ cd /home/user/glassfish4/bin
$ ./asadmin start-domain
-
Переходим по адресу
http://localhost:4848
и в консоли управления сервером:-
Создаем JDBC Connection Pool для подключения к нашей базе данных, например:
-
Pool Name: AppDB
-
Resource Type: javax.sql.DataSource
-
Database Driver Vendor: Postgresql
-
Datasource Classname: org.postgresql.ds.PGSimpleDataSource
-
User: cuba
-
DatabaseName: app_db
-
Password: cuba
-
-
Создаем JDBC Resource:
-
JNDI Name: jdbc/CubaDS
-
Pool Name: AppDB
-
-
В экране server (Admin Server) -> Properties -> System Properties задаем следующие системные переменные Java:
-
app.home = /home/user/app_home
- домашний каталог приложения. -
log4j.configuration = file:///home/user/app_home/log4j.xml
- файл конфигурации логгирования приложения.
-
-
-
Перезапускаем сервер:
$ ./asadmin stop-domain
$ ./asadmin start-domain
-
Снова открываем консоль сервера по адресу
http://localhost:4848
и в экране Applications выполняем развертывание файловapp-core.war
иapp.war
, находящихся в каталоге дистрибутива, созданного на шаге 3. -
Приложение запущено:
-
Веб-интерфейс доступен по адресу
http://localhost:8080/app
-
Лог-файлы создаются в каталоге
/home/user/app_home/logs
-