wake-up-neo.com

Lösung zum Fehler "Java.net.BindException: Adresse bereits verwendet"

Ich verwende Intellij und versuche, eine Tomcat-Anwendung bereitzustellen, aber wenn ich versuche, sie auszuführen, erhalte ich die folgende Fehlermeldung: 

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

Jetzt habe ich manuell nach dem Prozess gesucht, der an diesem Port abläuft: 

lsof -i:1098

Und ich habe den Java-Prozess gefunden und auch getötet: 

ps aux | grep Java

kill -9 20386

Und das hat funktioniert, aber ich muss dies JEDERZEIT machen, wenn ich Intellij öffne. Wenn ich den Server erneut ausführen möchte, ohne Intellij zu beenden, kann ich das nicht, weil ich diese Fehlermeldung bekomme. Kennt jemand eine permanente Lösung für dieses Problem und nicht immer jedes Mal manuell?

16
carbon_ghost

Dies liegt daran, dass JMX die Tomcat-Instanz überwacht. Tomcat wird auf Port 9999 ausgeführt. Wenn JMX nach dem Herunterfahren suchen möchte, kann es nicht an diesen Port gebunden werden.

Sie können dies beheben, indem Sie die Umgebungsvariable CATALINA_OPTS definieren.

Durch das Festlegen dieser Eigenschaften in Java_OPTS wird versucht, einen Jmx-Server zu starten, wenn Sie Tomcat UND beim Herunterfahren von Tomcat starten. Daher ist der Port bereits in Gebrauch, Ausnahme. Sie müssen diese Eigenschaften für CATALINA_OPTS anstelle von Java_OPTS festlegen. Dies wird nur beim Start von Tomcat ausgeführt.

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

Was behebt es für mich in $ HOME/.bashrc, füge ich diesen Export hinzu:

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

Gutschrift: https://bowerstudios.com/node/636

12
digicyc

enter image description hereKlicken Sie nach dem Stoppen des Servers auf das Schädel-Symbol, um alle zugehörigen Prozesse zu beenden. Dies sollte bei der Lösung des Portproblems helfen.

2
Gayathri

Ich habe diese Fragen oft in Tomcat gefunden.

错误: 代理 抛出 异常: Java.rmi.server.ExportException: Bereits verwendeter Port: 912 3; geschachtelte Ausnahme ist: Java.net.BindException: Adresse wird bereits verwendet

Ändern Sie in Tomcat [Cc @ Cdf bin] $ vim catalina.sh Den 9123 in eine inaktive Nummer, beispielsweise 8998 . Und dann [Cc @ Cdf bin] $ ./start .sh; tailf ../logs/catalina.out

0
Lucas