web-dev-qa-db-fra.com

Impossible d'ouvrir le port du débogueur dans IntelliJ IDEA

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. 

47
feng smith

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.

95
T.M.

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.

26
Chandan

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.

9
Tk421

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

8
Manam

Si vous êtes sur Windows, vous pouvez contourner complètement le problème de socket en passant au débogage de la mémoire partagée.

 enter image description here

4
Avner

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.

3
Florian F

J'ai résolu le problème de cette façon.

  1. J'ai essayé de tuer tous les processus Java.exe mais c'était inutile.
  2. Puis j'ai essayé de supprimer le serveur Tomcat 
  3. J'ai redéployé le projet et relancé le projet et cela a fonctionné.

Voir ces liens pour plus d'informations:

Supprimer Tomcat Delete Tomcat

Ajouter un nouveau Tomcat Add a new Tomcat

3
Abbot

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.

2
truthseeker

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. 

1
vince

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. 

1
feng smith

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

1
RAHUL ROY

Pendant le débogage, j’ai eu ce problème: cela fonctionnait avec 

  1. essayé de changer mon port HTTP Tomcat 8082 à 8083 (dans Debug configurations sur IntelliJ et dans Tomcat-> conf-> server.xml également)
  2. essayé de changer le port JMX de 1099 à 1009.
  3. essayé de changer le port de débogage dans Startup/Connection dans debug des configurations
  4. tué tous les processus Java dans TaskManager-> Processus.
1
Shweta Shrivastava

Toutes les autres solutions n'ont malheureusement pas fonctionné. C'est ce qui a fonctionné pour moi . J'ai simplement changé le port du débogueur en un autre numéro de port.

Intelij-> préférences-> Construction, exécution, déploiement -> Debugger-> Built in server-> port (modifiez la valeur)

enter image description here

0
Rachita Nanda

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.

0
Arun

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).

0
k13i

Changer le port de débogage de votre serveur configuré dans Intelli J.

Il sera corrigé . enter image description here

0

Dans Serveur onglet de la configuration Tomcat dans IntelliJ, remplacez Port JMX par un autre numéro. 

0
Majid

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. 

0
Umesh_Shah
  1. Vérifiez la configuration "Exécuter" pour voir quel port il utilise (8081). 
  2. Trouvez tous les autres processus utilisant ce port lsof -t -i :8081 
  3. Tuez les processus sur ce port. kill PROCESS_ID
  4. Exécutez Tomcat en mode débogage.

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.

0
recepinanc