5.1. Домашний каталог приложения
Домашний каталог - это каталог файловой системы, в котором CUBA-приложение создает временные файлы, и где можно расположить конфигурационные файлы local.app.properties и logback.xml. Большинство каталогов приложения, описанных ниже расположены в домашнем каталоге. Файловое хранилище также использует по умолчанию подкаталог домашнего каталога.
Так как CUBA приложение создает разные файлы (временные файлы, файлы журналов и др.) в домашнем каталоге, то этот каталог должен быть доступен для записи для пользователя, под которым приложение запущено.
Фреймворк получает путь к домашнему каталогу из системного свойства Java app.home
.
Рекомендуется задавать это свойство явно, используя аргумент командной строки |
- Явное указание домашнего каталога
При запуске UberJAR - укажите путь к домашнему каталогу в аргументе командной строки -D
, например:
java -Dapp.home=/opt/app_home -jar app.jar
При развертывании WAR-файла - установите app.home
в аргументе командной строки -D
в соответствующем скрипте запуска сервера приложения, либо другим специфичным для сервера способом. Например, в Tomcat создайте файл bin/setenv.sh
следующего содержания:
CATALINA_OPTS="-Dapp.home=\"$CATALINA_BASE/work/app_home\" -Xmx512m -Dfile.encoding=UTF-8"
Если используется развертывание в Tomcat Windows Service, расположите каждое свойство на отдельной строке в поле Java Options окна настроек службы.
- Автоопределение домашнего каталога
Если системное свойство app.home
не указано в командной строке, оно устанавливается автоматически в соответствии со следующими правилами:
-
Если приложение стартует как UberJAR, домашним каталогом становится текущий рабочий каталог процесса.
-
Если установлено системное свойство
catalina.base
(т.е. приложение работает на Tomcat), домашний каталог устанавливается в${catalina.base}/work/app_home
. -
В противном случае, домашний каталог устанавливается в подкаталог
.app_home
домашнего каталога пользователя.
Варианты 2 и 3 имеют следующий недостаток: процедура инициализации Logback вступает в действие до того, как свойство |
При использовании быстрого развертывания на этапе разработки, начиная с CUBA 7.2 домашний каталог приложения устанавливается в каталог проекта deploy/app_home
. Если ваш проект использует более старую версию платформы, каталоги приложения располагаются внутри подкаталогов conf
и work
Tomcat.