Apache Tomcat se bloque au démarrage
Dernièrement, je travaillais sur Tomcat 9 et j’ai rencontré un problème. Il se bloquait à l’étape suivante pendant le démarrage
22-Sep-2018 03:06:00.347 INFOorg.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande : -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 La bibliothèque native Apache Tomcat basée sur l'APR qui permet des performances optimales dans les environnements de production n'a pas été trouvée sur le chemin java.library.path :[/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 Initializing ProtocolHandler ["http-nio-8080"] 22-Sep-2018 03:06:00.629 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Utilisation d'un sélecteur partagé pour l'écriture/lecture de servlet 22-Sep-2018 03:06:00.650 INFO [main] org.apache.coyote.AbstractProtocol.init Initialisation du ProtocolHandler ["ajp-nio-8009"] 22-Sep-2018 03:06:00.651 INFO[ [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Utilisation d'un sélecteur partagé pour l'écriture/lecture de servlet 22-Sep-2018 03:06:00.665 INFO main] org.apache.catalina.startup.Catalina.load Initialisation traitée en 1341 ms 22-Sep-2018 03:06:00.738 INFO [ [main] ] org.apache.catalina.core.StandardService.startInternal Démarrage du service [Catalina] 22-Sep-2018 03:06:00.738 INFO main org.apache.catalina.core.StandardEngine.startInternal Démarrage du moteur de servlet : Apache Tomcat/9.0.12 22-Sep-2018 03:06:00.766 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Déploiement du répertoire de l'application web [/root/apache-tomcat-9.0.12/webapps/ROOT] [main]
Avez-vous le même problème ?
Généralement, cela se produit sur une VM et voici comment vous pouvez résoudre ce problème. Prenez une sauvegarde d’un fichier avant de le modifier et, si possible, testez-le dans un environnement de non-production
- Allez dans le dossier d’installation de Tomcat, puis dans bin
- Ouvrez
catalina.sh
à l’aide de l’éditeur vi - Recherchez JAVA_OPTS et ajoutez ce qui suit
–
Djava.security.egd=file:/dev/./urandom
Par exemple, je l’ai ajouté ici
JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Djava.security.egd=file:/dev/./urandom"
- Enregistrez le fichier et redémarrez Tomcat
Regardez le fichier catalina.out
et il devrait être démarré
22-Sep-2018 05:44:26.898 INFOorg.apache.catalina.startup.HostConfig.deployDirectory Le déploiement du répertoire d'applications Web [/root/apache-tomcat-9.0.12/webapps/manager] est terminé depuis [53] ms 22-Sep-2018 05:44:26.909 INFO [main] org.apache.coyote.AbstractProtocol.start Démarrage du ProtocolHandler ["http-nio-8080"] 22-Sep-2018 05:44:26.924 INFO [main] org.apache.coyote.AbstractProtocol.start Démarrage du ProtocolHandler ["ajp-nio-8009"] 22-Sep-2018 05:44:26.931 INFO [main] org.apache.catalina.startup.Catalina.start Démarrage du serveur en 2085 ms [main]
Cette astuce simple m’a aidé, et j’espère que vous aussi !
Si vous apprenez ou êtes curieux d’en savoir plus sur Tomcat, alors consultez ce cours du débutant à l’avancé.