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?
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"
Cliquez 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.
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