J'ai un problème qui empêche de configurer mon application en mode débogage avec IntellJ IDE, mais le mode d'exécution est OK.
Mon système d'exploitation est Windows 7, IDE est IntellJ IDEA, le conteneur Web est Tomcat 6. Je tente depuis longtemps de modifier le port HTTP et le port JMX, mais cela ne fonctionne pas.
Lorsque j'ai configuré l'application en mode débogage avec IntellJ, cela a échoué et le journal des événements est le suivant:
16:05:35 Erreur d’exécution de Tomcat: impossible d’ouvrir le port du débogueur: Java.net.BindException "Adresse déjà utilisée: JVM_Bind".
Toute aide serait appréciée.
la clé du problème est dans port du débogueur . J'avais le même problème, je tuais chaque processus d'écoute sur le port 8081 (mon port http), 1099 (port JMX), le port d'arrêt Tomcat, chaque Java.exe et toujours rien.
La chose est ce port du débogueur est différent. Si vous exécutez l'application, elle passera par le port pour lequel vous avez configuré Tomcat, 8080, 8081 ou autre. Mais si vous l'exécutez en mode débogage, il passe par un autre port.
Si vous allez modifier votre configuration Tomcat depuis IntelliJ, le dernier onglet est Startup/Connection . Ici, allez voir la configuration de Debug mode, et vous verrez son port. Le mien était 50473. Je l'ai changé en 50472 et tout a recommencé à fonctionner.
Pour moi, IntelliJ Event Log
(coin inférieur droit) avait les journaux suivants:
Error running EntitmentTooling-Debug: Cannot run program "/path-to/Apache-Tomcat-8.5.15/bin/catalina.sh" (in directory "path-to/Apache-Tomcat-8.5.15/bin"): error=13, Permission denied
Error running EntitmentTooling-Debug: Unable to open debugger port (127.0.0.1:58804): Java.net.SocketException "Socket closed"
La commande
$ chmod a+x /path-to/Apache-Tomcat-8.5.15/bin/catalina.sh
changer suffisamment de privilèges a fonctionné pour moi.
Cela fonctionne régulièrement pour moi (cela m'arrive de temps en temps, par exemple lorsque je fais des tâches telles que redémarrer Tomcat lors de l'exécution des tests d'intégration)
1) Trouver le processus qui a le port 1099 ouvert
Sudo netstat -anp | grep tcp | grep 1099
cp6 0 0 :::1099 :::* LISTEN 9857/Java
2) le tuer
kill 9857
3) Démarrer Tomcat.
J'ai eu le même problème dans Windows 7 et IntellijIdea 14 . J'ai tué les processus Java en allant CTRL + ALT + ESc, trouver Java et le tuer . Maintenant, réexécutez, l'application devrait à nouveau être très bien .. Vous pouvez aussi le faire avec la ligne de commande ou Shell (linux), mais j'ai trouvé cela plus facile pour moi
J'ai eu ce message exact.
La raison était que certains IDE (j'utilise Eclipse et Intellij) n'ont pas réussi à arrêter le serveur Tomcat. Ou peut-être s'est-il écrasé avant qu'il ne puisse le faire.
La solution consistait à accéder à C:\...\Apache-Tomcat-xxx\bin
et à exécuter shutdown
.
J'ai résolu le problème de cette façon.
Voir ces liens pour plus d'informations:
Supprimer Tomcat
Ajouter un nouveau Tomcat
La seule chose qui a fonctionné pour moi est d'aller au gestionnaire de tâches sous Windows et de mettre fin à tous les processus Java en cours d'exécution par un clic droit -> terminer la tâche.
J'ai le même problème, car le DNS de mon ordinateur manque 127.0.0.1 localhost . Lorsque j'ajoute 127.0.0.1 localhost à mon fichier Host, il devient ok.
Il arrive parfois que lorsque je redémarre mon ordinateur, tout se passe bien. Peut-être il y a un conflit de port.
Redémarrer l'ordinateur fonctionne car des instances de Java ou de Tomcat sont tuées au redémarrage Vous pouvez également envisager de supprimer les processus spécifiques à partir du Gestionnaire de tâches.
Cela se produit également s'il y a un problème dans le fichier context.xml. Dans mon cas, j'avais accidentellement changé la valeur du contexte.
Il y a plusieurs raisons à cela.
- Il pourrait y avoir un problème avec le port du débogueur --- Merci de le changer pour le résoudre (répondu par T.M )
- Il pourrait y avoir un problème avec intellij cache --Invalidate cache et redémarrer va le résoudre (réponse par feng smith )
- Il pourrait y avoir un problème avec tout autre port, comme JMX, AJP --- Veuillez modifier ces numéros de port également.
Je voulais ajouter ceci comme commentaire mais pas assez de rep
Pendant le débogage, j’ai eu ce problème: cela fonctionnait avec
Dans mon cas, il y avait un problème dans le fichier server.xml for Tomcat/conf où j'avais des balises de commentaire supplémentaires sous une autre balise de commentaire. Donc, je pense qu’en raison d’un problème rencontré dans server.xml, Tomcat n’a pas pu démarrer. De plus, il copie le dossier Tomcat de votre répertoire d’installation dans C:\Users\username.IntelliJIdea2017.2\system\Tomcat\Tomcat_service.
Aucune des méthodes ci-dessus ne fonctionnait dans mon cas, c’est-à-dire changer le numéro de port dans la configuration d’exécution, redémarrer la machine, invalider le cache dans IntelliJ, tuer le processus affiché dans netstat (nestat -anob | findstr <port-number>
puis tskill <pid>
). La seule chose qui a finalement aidé a été de démarrer et d’arrêter Tomcat manuellement via startup.bat
et shutdown.bat
(vous devez utiliser les fichiers correspondig .sh
sur linux et macOS).
Dans Serveur onglet de la configuration Tomcat dans IntelliJ, remplacez Port JMX par un autre numéro.
Cela se produit lorsque l’application est exécutée sur le même numéro de port. Une façon de faire cela en tuant le processus avec force. Ouvrez l'invite de commande en tant qu'administrateur. Exécutez la commande 'taskkill/IM "Java.exe"/F'. Cela a fonctionné pour moi dans Windows. Laissez-moi savoir si cela fonctionne.
8081
). lsof -t -i :8081
kill PROCESS_ID
Dans mon cas, j’ai perdu beaucoup de temps à changer de port de débogage mais ce n’était pas le problème. Tomcat n'ayant pas pu s'exécuter sur le port choisi dans la configuration Run, je n'ai pas pu déboguer mon service.