web-dev-qa-db-fra.com

Solution à l'erreur "Java.net.BindException: adresse déjà utilisée"?

J'utilise Intellij, je tente de déployer une application Tomcat, mais chaque fois que j'essaie de l'exécuter, l'erreur suivante apparaît: 

Error: Exception thrown by the agent : Java.rmi.server.ExportException: Port already in use: 1098; nested exception is: 
Java.net.BindException: Address already in use

Maintenant, j'ai manuellement recherché le processus en cours sur ce port via: 

lsof -i:1098

Et j'ai trouvé le processus Java et l'ai tué aussi: 

ps aux | grep Java

kill -9 20386

Et cela a fonctionné, mais je dois le faire CHAQUE FOIS, j'ouvre Intellij. Si je veux réexécuter le serveur sans quitter Intellij, je ne peux pas, car j'obtiendrai cette erreur. Est-ce que quelqu'un connaît un correctif permanent pour cela et pas seulement le tuer manuellement à chaque fois?

16
carbon_ghost

Cela est dû au fait que JMX surveille l'instance Tomcat. Tomcat fonctionnera sur le port 9999. Par conséquent, lorsque JMX souhaite commencer à vérifier l'arrêt, il ne peut pas se lier à ce port.

Une solution consiste à définir votre variable d’environnement CATALINA_OPTS.

La définition de ces propriétés dans Java_OPTS tente de démarrer un serveur jmx lorsque vous démarrez Tomcat ET lorsque vous arrêtez Tomcat. D'où l'exception du port déjà utilisé. Vous devez définir ces propriétés pour CATALINA_OPTS au lieu de Java_OPTS. Cela ne fonctionnera que lorsque vous démarrez Tomcat.

CATALINA_OPTS = "$ CATALINA_OPTS -Dcom.Sun.management.jmxremote -Dcom.Sun.management.jmxremote.port = 8999" .____ .management.jmxremote.authenticate = false "

Ce qui le corrige pour moi est dans $ HOME/.bashrc J'ajoute cette exportation:

export CATALINA_OPTS="$CATALINA_OPTS -Dcom.Sun.management.jmxremote -Dcom.Sun.management.jmxremote.port=8999"

Crédit: https://bowerstudios.com/node/636

12
digicyc

enter image description hereCliquez sur l'icône du crâne après avoir arrêté le serveur pour tuer tous les processus associés. Cela devrait aider à résoudre le problème du port.

2
Gayathri

J'ai trouvé cette question à plusieurs reprises dans Tomcat.

: 代理 抛出 异常: Java.rmi.server.ExportException: Port déjà utilisé: 912 3; exception imbriquée est la suivante: Java.net.BindException: adresse déjà utilisée

Dans Tomcat [Cc @ Cdf bin] $ vim catalina.sh Changez le 9123 en un nombre inactif, par exemple 8998 ., Puis, [Cc @ Cdf bin] $ ./start .sh; tailf ../logs/catalina.out

0
Lucas