Я отредактировал файл "server.xml" в папке Tomcat 8 conf
. Я добавил новый Host
тег для нового веб-сайта.
Должен ли я перезапустить сервер Tomcat?
Могу ли я получить Tomcat для анализа и применения только что отредактированного server.xml
?
configuration
tomcat
Базилик Бурк
источник
источник
<Host>
, нет<Context>
.server.xml
анализируется один раз при запуске. Он не может быть перезагружен без перезагрузки.Ответы:
Я хотел бы начать с того, что вопрос задан не совсем правильно, так как на самом деле можно редактировать файл без перезапуска Tomcat, но изменения игнорируются запущенным процессом.
Реальный вопрос заключается в том, как применить изменения
server.xml
без перезагрузки Tomcat.Собирая информацию из процесса запуска и страниц загрузчика классов в онлайн-документации Tomcat, можно понять это более подробно.
Более конкретно, это описано в serverStartup.txt и UML-диаграмме процесса запуска, и соответствующие части можно суммировать следующим образом:
Это происходит после создания загрузчика классов Bootstrap из движка сервлета (Catalina).
С этой информацией теперь ясно, когда в процессе запуска
server.xml
файл анализируется, но на самом деле он не отвечает на вопрос, почему требуется перезапустить Tomcat, чтобы применить изменения к этому файлу.Ответ в том, что некоторая его часть может динамически изменяться во время выполнения с использованием JMX . Чтобы это было возможно, необходимо зарегистрировать соответствующий MBean (шаг b6 выше), а также принять операции SET (некоторые MBean имеют только интерфейс GET).
В вашем конкретном случае нет способа создать и зарегистрировать новый хост во время выполнения, потому что для него нет условий, и именно поэтому вам нужно перезапустить процесс Tomcat, чтобы загрузчик классов Bootstrap создал этот объект и зарегистрировал его в Агент JMX
После этого можно изменить этот хост из JMX-клиента, например,
jconsole
который поставляется в комплекте с любым JDK.Подключите вас
jconsole
к Tomcat с поддержкой JMX и просмотрите Host MBean, чтобы проверить все доступные атрибуты:и проверьте все доступные операции (одна из них показана ниже в качестве примера):
источник
Требуется перезагрузка.
Страница документации Tomcat для
<Context>
упоминаний:источник
we’re talking about <Host>, not <Context>.
-1 извините, я редко делаю это, но там я должен ...