Apache Tomcat se atasca al arrancar

Últimamente, estaba trabajando con Tomcat 9 y me encontré con un problema. Se estaba atascando en la siguiente etapa durante el arranque.

22-Sep-2018 03:06:00.347 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Argumento de línea de comandos: -Djava.io.tmpdir=/root/apache-tomcat-9.0.12/temp
22-Sep-2018 03:06:00.347 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent No se ha encontrado en la ruta java.library.path la biblioteca nativa de Apache Tomcat basada en APR que permite un rendimiento óptimo en entornos de producción: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
22-Sep-2018 03:06:00.601 INFO [main] org.apache.coyote.AbstractProtocol.init Inicializando ProtocolHandler ["http-nio-8080"]
22-Sep-2018 03:06:00.629 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Usando un selector compartido para escritura/lectura de servlets
22-Sep-2018 03:06:00.650 INFO [main] org.apache.coyote.AbstractProtocol.init Inicializando ProtocolHandler ["ajp-nio-8009"]
22-Sep-2018 03:06:00.651 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Usando un selector compartido para escritura/lectura de servlets
22-Sep-2018 03:06:00.665 INFO [main] org.apache.catalina.startup.Catalina.load Inicialización procesada en 1341 ms
22-Sep-2018 03:06:00.738 INFO [ main] org.apache.catalina.core.StandardService.startInternal Iniciando servicio [Catalina]
22-Sep-2018 03:06:00.738 INFO [ main] org.apache.catalina.core.StandardEngine.startInternal Iniciando motor Servlet: Apache Tomcat/9.0.12
22-Sep-2018 03:06:00.766 INFO [ main] org.apache.catalina.startup.HostConfig.deployDirectory Desplegando directorio de aplicación web [/root/apache-tomcat-9.0.12/webapps/ROOT]

¿También tiene el mismo problema?

Normalmente, esto ocurre en VM y aquí le explicamos cómo puede solucionarlo. Haga una copia de seguridad de un archivo antes de modificarlo y, si es posible, haga una prueba en un entorno que no sea de producción.

  • Vaya a la carpeta de instalación de Tomcat y luego a bin
  • Abra catalina. sh utilizando el editor vi
  • Busque JAVA_OPTS y añada lo siguiente
-Djava.security.egd=archivo:/dev/./urandom

Por ejemplo, yo lo he añadido aquí.

JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Djava.security.egd=file:/dev/./urandom"
  • Guarde el archivo y reinicie Tomcat

Mire el archivo catalina. out y debería estar iniciado.

22-Sep-2018 05:44:26.898 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory El despliegue del directorio de aplicaciones web [/root/apache-tomcat-9.0.12/webapps/manager] ha finalizado en [53] ms
22-Sep-2018 05:44:26.909 INFO [main] org.apache.coyote.AbstractProtocol.start Iniciando ProtocolHandler ["http-nio-8080"]
22-Sep-2018 05:44:26.924 INFO [main] org.apache.coyote.AbstractProtocol.start Iniciando ProtocolHandler ["ajp-nio-8009"]
22-Sep-2018 05:44:26.931 INFO [ main] org.apache.catalina.startup.Catalina.start Arranque del servidor en 2085 ms

Este sencillo truco me ha ayudado, ¡y espero que a usted también!

Si está aprendiendo o tiene curiosidad por aprender más sobre Tomcat, eche un vistazo a este curso para principiantes y avanzados.