Causas de Tomcat não começar


Data de Publicação:8 de Janeiro de 2021.



INFOMARTION > Causas de Tomcat não começar

Visão geral.

Esta secção descreve as causas de Tomcat não ter começado e como lidar com elas. Esta é a causa e o remédio para os casos em que Tomcat não arranca por alguma razão e ocorre um erro mesmo que o startup.bat ou o startup.sh seja executado. Gostaria de explicar isto com base na versão Tomcat '9.0.27'.

Tabela de Conteúdos

  1. Causas de Tomcat não começar
  2. resumo

1. Causas de Tomcat não começar

Há várias causas para o Tomcat não começar, mas esta secção descreve os principais acontecimentos que podem fazer com que Tomcat não comece.

1-1. JAVA_HOME não está definido.

【causa】

Se nem JAVA_HOME nem JRE_HOME estiver definido, é emitido o seguinte erro.

startup.bat


C:\Users\user>C:\apache-tomcat-9.0.27\bin\startup.bat
The JRE_HOME environment variable is not defined correctly
This environment variable is needed to run this program

【Como lidar com ele】

Definir JAVA_HOME ou JRE_HOME a partir de 'System Properties, Advanced Settings, Environment Variables'. Se configurado correctamente, escrevendo 'echo %JAVA_HOME%', 'echo %JRE_HOME%', etc. no prompt de comando produzirá a seguinte saída. Como precaução, reinicie o prompt de comando se alterar as variáveis de ambiente. As variáveis ambientais são lidas quando o prompt de comando é iniciado.

C:\Users\user>echo %JAVA_HOME%
C:\Program Files (x86)\Java\jdk-11

1-2. A versão JAVA não é compatível com Tomcat.

【causa】

Tomcat tem uma versão Java suportada. Pode ser encontrado no seguinte website Tomcat.

https://tomcat.apache.org/whichversion.html

Por exemplo, a versão Tomcat "9.0.27" seria "9.0.x" da "Versão Apache Tomcat" no sítio acima referido, que é "8 e mais tarde".

Isto significa que a definição de Java 8 ou posterior funcionará.

【Como lidar com ele】

Reescrever as variáveis de ambiente para o Java correspondente com base no seguinte website Tomcat.

https://tomcat.apache.org/whichversion.html

1-3. JRE_HOME está activado.

【causa】

Tomcat é válido para "JRE_HOME" se "JRE_HOME" e "JAVA_HOME" estiverem definidos. Mesmo que olhe para "JAVA_HOME" e veja que Java é compatível com Tomcat, "JRE_HOME" funcionará, por isso "JRE_HOME" deve ser Java compatível com Tomcat.

【Como lidar com ele】

Desde 'System Properties, Advanced Settings, Environment Variables', reescrever Java em JRE_HOME para o Java correspondente a Tomcat.

1-4. Números de portas conflituosas.

【causa】

Tomcat começa na porta 8080 por defeito. Se houver outras aplicações em funcionamento na porta 8080, o erro seguinte é emitido.

Critical [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector[HTTP/1.1-8080]]

【Como lidar com ele】

Alterar a porta de Tomcat ou parar as aplicações com números de portas em conflito que estão em funcionamento.

O comando seguinte dir-lhe-á se existe um conflito de números de porta. A parte "8080" deve ser adaptada ao seu próprio ambiente. Se nenhuma configuração tiver sido alterada, o valor é 8080. Se nada for activado, nenhuma resposta é devolvida.

※Os seguintes comandos são Windows.

C:\Users\user>netstat -nao | find "8080"
  TCP         0.0.0.0:8080           0.0.0.0:0              LISTENING       5748
  TCP         [::]:8080              [::]:0                 LISTENING       5748
  TCP         [::1]:8080             [::1]:58259            TIME_WAIT       0
  TCP         [::1]:8080             [::1]:58260            TIME_WAIT       0
  TCP         [::1]:8080             [::1]:58261            TIME_WAIT       0

2. resumo

Se Tomcat não começar, verifique os quatro pontos seguintes.

  • JAVA_HOME não está definido.
  • A versão JAVA não é compatível com Tomcat.
  • JRE_HOME está activado.
  • Números de portas conflituosas.

Se isso não funcionar, consulte por favor o artigo seguinte sobre como Tomcat arranca em primeiro lugar.

Como é que Tomcat é activado?

Obrigado por ter observado até ao fim.