Le message d'erreur suivant s'affiche lorsque j'essaie d'exécuter un programme JSP simple sur Tomcat dans Eclipse.
Plusieurs ports (8005, 8080, 8009) requis par Tomcat v6.0 Server sur localhost sont déjà utilisés. Le serveur est peut-être déjà en cours d'exécution dans un autre processus ou un processus système utilise peut-être le port. Pour démarrer ce serveur, vous devez arrêter l'autre processus ou modifier le ou les numéros de port.
Comment cela est-il causé et comment puis-je le résoudre?
Vous avez déjà une autre instance de Tomcat en cours d'exécution. Vous pouvez le confirmer en accédant à http://localhost:8080
dans votre navigateur Web et en vérifiant si vous obtenez la page d'accueil par défaut de Tomcat ou une page d'erreur 404 spécifique à Tomcat. Les deux sont des preuves tout aussi valables que Tomcat fonctionne bien; dans le cas contraire, vous auriez reçu un message d'erreur relatif au délai de connexion HTTP spécifique au navigateur.
Vous devez l'arrêter. Accédez au sous-dossier /bin
du dossier d'installation de Tomcat et exécutez le script shutdown.bat
(Windows) ou shutdown.sh
(Unix). Si c'est en vain, fermez Eclipse, ouvrez le gestionnaire de tâches et supprimez tous les processus Java
et/ou javaw
.
Ou, si vous l'avez installé en tant que service Windows pour une raison quelconque (cela est destiné à la production et n'est pas utile lorsque vous développez), ouvrez le gestionnaire de services ( Démarrer> Exécuter> services.msc ) et arrêtez le service Tomcat. Si nécessaire, désinstallez complètement le service Windows. Pour le développement, seul le fichier Zip est suffisant.
Ou si votre actual / intention est d'exécuter deux instances de Tomcat simultanément, vous devez configurer la seconde instance pour écouter sur des ports différents. Consultez la documentation de Tomcat pour plus de détails.
kill $(ps -aef | grep Java | grep Apache | awk '{print $2}')
Si vous utilisez Windows, essayez ceci dans l'invite de ligne de commande:
netstat -ano
Cela montrera tous les ports utilisés et le numéro d'identification du processus PID # du processus utilisant ce port. ensuite Ctrl+Alt+Del et ouvrez le Gestionnaire des tâches pour voir quel processus est-ce.
Vous pouvez ensuite choisir de le fermer/l’arrêter ou de configurer votre serveur pour utiliser un autre port. Pour vérifier si le nouveau port choisi (par exemple 8010) est disponible, procédez comme suit:
netstat -ano | grep 8010
S'il ne renvoie aucune ligne, tout va bien.
Pour changer le port, allez dans la vue Serveur, ouvrez server.xml et changez le port. Le mien a cette entrée:
Connector port="8010" protocol="AJP/1.3" redirectPort="8443"
Si vous êtes sur l'environnement Mac, ici est ce que j'ai fait.
Recherchez l'identifiant du processus en cours d'exécution sur ce port à partir du terminal, par exemple 8080:
lsof -i :8080
et tuez le:
kill -9 <PID>
Procédure pour libérer le port déjà utilisé pour exécuter le serveur Tomcat dans Eclipse
Par exemple, si le port 8080 est utilisé, nous devons libérer 8080 pour exécuter Tomcat.
Étape 1:
C:\Utilisateurs\nom d'utilisateur> netstat -o -n -a | findstr 0.0: 8080
TCP 0.0.0.0:3000 0.0.0.0:0 ÉCOUTE 3116
Maintenant, nous pouvons voir que le port d'écoute est 3116 pour 8080,
Nous devons tuer 3116 maintenant
Étape 2:-
C:\Utilisateurs\nom d'utilisateur> taskkill/F/PID 3116
Étape 3: Allez sur Eclipse et démarrez le serveur, il sera exécuté
Si vous utilisez Eclipse, double-cliquez sur serveurs et double-cliquez sur serveur Tomcat pour ouvrir un fichier. Dans ce fichier, changez le port HTTP en un autre numéro de port et enregistrez (Ctrl+S) puis redémarrez le serveur.
Si Eclipse dit
Plusieurs ports (8005, 8080, 8009) requis par Tomcat version 6.0 Server sur localhost sont déjà utilisés
Cette erreur est due au fait que Tomcat fonctionne peut-être en arrière-plan. Arrêtez donc ce serveur.
La solution est:
Merci!
Je n'ai aucune autre instance de Tomcat en cours d'exécution ni aucun autre processus utilisant "le port Tomcat" (dans mon cas, le port 8088) . Eclipse envoie le même message au démarrage de Tomcat:
.... Le serveur est peut-être déjà en cours d'exécution dans un autre processus ou un processus système utilise peut-être le port. Pour démarrer ce serveur, vous devez arrêter l'autre processus ou modifier le ou les numéros de port.
Je résous le problème de cette manière:
Ce que j’ai fait après avoir lu toutes les réponses suggérées et comme je sais que mon port était déjà utilisé. J'ai double-cliqué sur Tomcat sous l'onglet Serveurs dans Eclipse. Il a ouvert les informations générales, puis les informations de port. Vient de changer le port en conflit car le mien était le port 8009 (erreur signalée lors du démarrage du serveur). Je l'ai changé en 8008 et cela fonctionne bien. Faites un essai si le port modifié ne serait pas utilisé, le serveur démarrera.
Étape 1: _ {netstat -a -o -n et il affichera une liste de réseaux, recherchera l'adresse locale comme 127.0.0.1:8080 et notera le PID (éq 3624)
C:\>netstat -a -o -n
Step2: _ {taskkill/F/PID 3624. Exécutez cette commande pour tuer ce processus.
C:\>taskkill /F /PID 3624
lien vers post
Un moyen facile de résoudre votre problème:
Le serveur est peut-être déjà en cours d'exécution dans un autre processus ou un processus système utilise peut-être le port. Pour tuer ce port, procédez comme suit:
1) Téléchargez TCPView (seulement 285 Ko) à partir du lien suivant.
http://technet.Microsoft.com/en-in/sysinternals/bb897437.aspx
2) Extrayez le dossier et démarrez l’application TCPView.
3) Cliquez avec le bouton droit de la souris sur Java.exe (parce que 8009,8005 ports sont couramment utilisés par le processus Java) et sélectionnez l’option End Process.
cela arrêterait un autre processus facilement ..
NOTE: L'exécution de TOMCATPATH / bin/shutdown.bat peut ne pas arrêter Tomcat lorsqu'il contient des démons ou des fichiers non gérés les fils. Dans ce cas, TCPView fonctionne correctement sans aucun problème.
Sous Windows, utilisez la commandepour arrêter l'instance de Tomcat déjà en cours d'exécution et essayez de la réexécuter dans Eclipse. Cela peut fonctionner.
net stop Tomcat7
Ou vous pouvezchanger le port dans XMLdu serveur si vous voulez seulement exécuter sur d'autres ports.
Voici une autre option à essayer si aucun des efforts ci-dessus n'a aidé. Vous utilisez peut-être Eclipse à partir d'un lecteur partagé (par exemple, H :). Si tel est le cas, déplacez/copiez le répertoire Eclipse complet vers C: et réessayez.
Mon Eclipse n'a pas pu ouvrir les ports du serveur Tomcat (avec l'erreur ci-dessus), ni même se connecter à Internet. J'ai aussi essayé un autre plugin Tomcat (Sysdeo) qui n'a pas réussi à ouvrir les ports.
Ce sont les options que j'ai essayées:
Vérifier et tuer d'autres instances de Tomcat
netstat -ano
et vérifiez si d'autres processus utilisent les ports en conflit.Modifier les ports Tomcat dans Eclipse
Kill Java.exe et javaw
Voir mon autre réponse concernant Eclipse qui ne se connecte pas à Internet ( https://stackoverflow.com/a/37246087/4212710 ).
Si vous utilisez Java EE prospective dans Eclipse et essayez de démarrer le serveur Tomcat dans Eclipse en mode débogage, vous obtiendrez de telles erreurs. Vous devez passer au débogage prospectif dans Eclipse. J'ai résolu mon problème comme ça.
Pour les utilisateurs de Windows:
Accédez directement au Gestionnaire des tâches avec la combinaison de touches CTRL + MAJ + ÉCHAP.
Supprimez les processus "Java.exe" en cliquant avec le bouton droit de la souris et en sélectionnant "Fin de tâche".
Parfois, si les ports ne sont pas libérés même après avoir tenté shutdown.bat comme l'a suggéré @BalusC, vous pouvez arrêter le processus javaw. Suivez les étapes suivantes:
Entrez la commande ps. Vous pouvez voir une image comme suit:
Voir le numéro de processus du processus "javaw" .Le numéro de processus est le nombre le plus à droite dans les colonnes, j'ai mis en surbrillance dans le numéro de processus d'image de javaw par exemple.
Entrez la commande kill. javaw est tué et vous devez maintenant pouvoir exécuter le programme.
La solution la plus simple qui fonctionne pour moi est de supprimer mes applications Web déployées actuelles de Tomcat via l'onglet "Serveur". Une fois que je les enlève, le problème disparaît. Redéployez simplement votre projet en allant dans Exécuter en tant que> Exécuter sur le serveur.
Le problème survient souvent lorsque Apache Tomcat ne parvient pas à se terminer correctement, même si une instruction d'arrêt a été envoyée. Dans mon cas, avec Tomcat 8, cela se produit avec une régularité gênante. Heureusement, vous pouvez utiliser Windows PowerShell et la commande netstat
pour créer un script simple afin de tuer le processus.
Le script PowerShell suivant analysera la sortie de netstat
pour rechercher tout processus en cours d'écoute sur 127.0.0.1:8005
, en extraire le PID, puis arrêter ce processus:
netstat -a -o -n `
| select -skip 4 `
| % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}} `
| ? {$_.Fields[1] -match '127\.0\.0\.1\:8005$'} `
| % {Write-Host "Killing PID" $_.Fields[4] "..."; taskkill /F /PID $_.Fields[4] }
Si votre server.xml
configure Tomcat pour utiliser un port ou une adresse IP différents, modifiez l'expression régulière sur la quatrième ligne du script en conséquence.
Enfin, je dois signaler que la situation est meilleure sous Linux car vous pouvez demander à Tomcat de sauvegarder son PID dans un fichier au démarrage et d’utiliser un commutateur pour forcer l’arrêt, puis le script d’arrêt des systèmes 'nix la capacité de tuer le processus et le travail avec netstat
n'est pas requise.
J'ai vérifié toutes les réponses mais informing only to kill PID
.
Dans le cas où vous avez un accès au terminal partagé par tous, cela ne vous aidera pas ou peut-être n'avez-vous pas l'autorisation de tuer le PID.
Dans ce cas, ce que vous pouvez faire est:
Double click on server
Go to Overview and change ports in Ports
comme ceci:
La solution la plus simple
Commande à ligne unique pour tuer plusieurs ports:
kill $(lsof -t -i:8005,8080,8009) // 8005, 8080 and 8009 are the ports to be freed
Plusieurs ports (8005, 8080, 8009) requis par Tomcat vX.X Server sur localhost sont déjà utilisés
Pour vérifier si une autre instance de Tomcat en cours d'exécution ou un autre processus utilise les ports, vous pouvez utiliser:
netstat -b -a
in command Invite pour Windows. Cela répertorie les ports utilisés et vous donne le fichier exécutable utilisant chacun. Pour ce faire, vous devez être dans le groupe d'administrateurs.
Vous pourriez obtenir quelque chose comme ça:
TCP 192.168.0.1:8009 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]
TCP 192.168.0.1:8080 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]
TCP 192.168.0.1:8005 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]
Ouvrir le gestionnaire de tâches Ctrl+Shift+Escet kill Tomcat7.exe
ou tout autre processus utilisant ces ports.
C'est peut-être parce que vous n'arrêtez pas votre service Tomcat correctement. Pour ce faire, Ouvrez votre gestionnaire de tâches vous pouvez voir un service javaw.exe
. Tout d'abord, arrêtez ce service. Maintenant, redémarrez votre Tomcat, cela fonctionne bien.
Comment tuer un service Windows en utilisant PID -
netstat -ano
taskkill /f /pid 5760
Merci
Si le problème ci-dessus se produit dans un système d'exploitation Windows 7 ou 10, il se produit car Tomcat s'exécute en tant que service Windows. Pour arrêter l'exécution de Tomcat en tant que services Windows, ouvrez le Panneau de configuration Windows. Recherchez le service "Apache Tomcat" et arrêtez-le . Une autre méthode consiste à arrêter le processus exécuté sur le port 8080 à l'aide de cmd.
Ouvrez cmd en l'exécutant en tant qu'administrateur.
Vous n'avez pas besoin de fermer votre IDE Eclipse. Votre Tomcat est probablement déjà en cours d'exécution. C'est pourquoi vous avez une erreur.
ouvrir le répertoire Tomcat >> bin >> à partir du terminal de commande (Tomcat9 dans mon cas)
Entrez la commande
./shutdown.sh
il fermera votre Tomcat en cours d'exécution
Dans le cas de Windows, j’ai rencontré un nouveau problème .... arrêter le Tomcat à partir du dossier/bin ne libère pas immédiatement le port 8080. Il faut environ 5 à 10 minutes pour libérer le port. Après 10 minutes à nouveau si j'essaie d'exécuter mon projet Exécuter-> Exécuter sur le serveur .. cela permet de l'exécuter.
Je ne suis pas sûr si ma compréhension est correcte!
Votre Tomcat fonctionne probablement déjà. C'est pourquoi vous avez une erreur. J'ai eu le même problème avant. Je l'ai résolu très simplement:
C'est tout.
Dans mon cas, cela me donnait l'erreur: Le port 8005 requis par Tomcat v8.0 Le serveur localhost est déjà utilisé
J'ai changé le port 8005 dans Apache-Tomcat-8.0.39\conf\server.xml mais les modifications ne sont pas reflétées. Ensuite, j'ai apporté ces modifications à Eclipse. en double cliquant sur le serveur et en modifiant le port de 8005 à 8006 et cela fonctionne.
Avant de mettre 8006, j'ai vérifié dans Windows Shell si ce port est disponible ou non. En exécutant la commande suivante:
netstat -a -o -n | findstr 8006
Référez-vous au blog suivant "comment tuer Tomcat sans avoir à redémarrer votre ordinateur"
http://stanicblog.blogspot.fr/2012/01/how-to-kill-Apache-Tomcat-without.html
J'espère que cela aidera quelqu'un à l'avenir.
Sous Windows, faites un clic droit sur la barre des tâches -> démarrer le gestionnaire de tâches -> processus puis cochez Java.exe ou javaw est en cours d’exécution, puis cliquez dessus et mettez fin au processus, puis redémarrez votre chat tom. serveur.
Cela se produit lorsque d'autres personnes du projet utilisent également les mêmes numéros de port que vous utilisez! Le code va maintenant commencer à courir!
Sur Eclipse, effectuez une suppression brute du dossier de configuration de Tomcat sous le projet "Serveurs" .