Editei o arquivo "server.xml" na conf
pasta do Tomcat 8. Eu adicionei uma nova Host
tag para um novo site.
Devo reiniciar o servidor Tomcat?
Posso fazer com que o Tomcat analise e aplique o recém-editado server.xml
?
Editei o arquivo "server.xml" na conf
pasta do Tomcat 8. Eu adicionei uma nova Host
tag para um novo site.
Devo reiniciar o servidor Tomcat?
Posso fazer com que o Tomcat analise e aplique o recém-editado server.xml
?
Eu começaria dizendo que a pergunta não está totalmente correta, pois é bem possível editar o arquivo sem reiniciar o Tomcat, mas as alterações são ignoradas pelo processo em execução.
A verdadeira questão seria como aplicar as alterações
server.xml
sem reiniciar o Tomcat.Reunindo informações do processo de inicialização e das páginas do class-loader na documentação online do Tomcat, é possível entender isso com mais detalhes.
Mais especificamente, é descrito em serverStartup.txt e o diagrama UML do processo de inicialização e as partes relevantes podem ser resumidas da seguinte forma:
Isso acontece após a criação do classloader Bootstrap do mecanismo de servlet (Catalina).
Com essas informações, fica claro agora quando no processo de inicialização o
server.xml
arquivo é analisado, mas realmente não responde à pergunta de por que é necessário reiniciar o Tomcat para aplicar alterações a esse arquivo.A resposta é que alguma parte dele pode ser modificada dinamicamente em tempo de execução usando JMX . Para que isso seja possível, o MBean apropriado deve ser registrado (passo b6 acima) e também deve aceitar operações SET (alguns MBeans possuem apenas uma interface GET).
No seu caso específico, não há como criar e registrar um novo Host em tempo de execução porque não há provisão para isso, e esse é o motivo pelo qual você deve reiniciar o processo Tomcat para que o carregador de classe Bootstrap instancie esse objeto e registre-o com Agente JMX.
Posteriormente, é possível modificar esse host a partir de um cliente JMX, como o
jconsole
que vem junto com qualquer JDK.Conecte você
jconsole
a um Tomcat habilitado para JMX e navegue no Host MBean para verificar todos os atributos disponíveis:e verifique todas as operações disponíveis (uma delas mostrada abaixo como exemplo):
Não. É necessário reiniciar.
A página de documentação do Tomcat para
<Context>
menções: