Как активировать горячее развертывание в OpenLiberty для отдельных файлов? - PullRequest
2 голосов
/ 26 марта 2020

Я установил openLiberty 20.0.0 и хочу активировать горячее развертывание. Для этого я добавил тег applicationMonitor на сервер. xml

<applicationMonitor updateTrigger="polled" pollingRate="500ms"
                dropins="dropins" dropinsEnabled="true"/>

Но, похоже, это уже значения по умолчанию. Так что, возможно, я могу оставить это.

Я также добавил функцию автоэкспандирования

<applicationManager autoExpand="true" />

Теперь, когда я развертываю файл .war в папке dropins, приложение автоматически распознается openLiberty и сразу же развертывается , Пока это нормально.

Но, как я понял, также горячее развертывание отдельных исходных файлов (например, html, .x html.) Должно распознаваться и обновляться в моем работающем приложении без необходимости. полного перераспределения.

Если я, например, изменю один файл jsf в папке приложения

./dropins/myapplication.war/my-page.jsf

, ничего не произойдет. Что я упустил, чтобы позволить OpenLiberty также распознавать эти незначительные изменения файла?

1 Ответ

3 голосов
/ 26 марта 2020

Простой ответ:

удалить <applicationManager autoExpand="true" /> и все будет работать так, как вы ожидаете.


Более длинный ответ:

Если у вас есть <applicationManager autoExpand="true" /> в вашем конфигурации сервера. xml, тогда приложение будет автоматически развернуто в новую папку по адресу ${server.config.dir}/apps/expanded/APP_NAME/

Так что при запуске приложения у вас будет такой формат файла:

./server.xml
./dropins/myapplication.war
./apps/expanded/myapplication.war/my-page.jsf
./apps/expanded/myapplication.war/WEB-INF/classes/com/foo/SomeAppClass.class

«Активный» набор файлов - это файлы в папке apps/expanded/, которые можно затем обновить в горячем режиме. Этот подход полезен, если вы хотите развернуть один .war-файл и затем настроить его после его развертывания, например, в режиме dev. Однако будьте осторожны при непосредственном внесении изменений в расширенную папку, поскольку ее можно удалить, если сервер будет перезапущен, а приложение повторно развернуто.


Обычно пользователям не нужно знать об этом подробности о расширении приложения или горячих обновлениях, потому что обо всем позаботятся, если вы используете Liberty Dev Mode . Если вы еще не устали, я очень рекомендую.

...