Die Tomcat-Ausnahme java.net.BindException: Adresse wird bereits verwendet. Fehler in Java

1. Übersicht

In diesem kurzen Tutorial werden wir uns ansehen, was den häufigen java.net.BindingException-Fehler verursacht: Adresse bereits im Verwendungsfehler und wie wir damit umgehen können.

2. Wann tritt der Fehler auf?

Wie wir wissen, verwendet der Apache Tomcat-Server standardmäßig den 8080-Port.

Die Portnummern reichen von 0 bis 65535, ein Port kann jedoch immer nur von einer einzelnen Anwendung belegt werden .

Die Ausnahme besagt, dass die Anwendung versucht, einen Port zu verwenden, der bereits von einem anderen Prozess belegt wurde, oder dass wir den Tomcat-Server nicht ordnungsgemäß gestoppt haben.

3. Diagnose

Um diesen Fehler zu beheben, können wir entweder den Dienst beenden, der diesen Port verwendet, oder unseren Webserver so ändern, dass er auf einem anderen Port ausgeführt wird.

3.1. Den Konflikt entdecken

In diesem Fall müssen wir herausfinden, welche Anwendung den Port verwendet.

Der Befehl netstat kann zum Erkennen aktueller TCP / IP-Verbindungen verwendet werden.

Im Folgenden finden Sie die Befehle, mit denen der Prozess in verschiedenen Umgebungen gefunden und abgebrochen werden kann.

Unter Windows gibt die letzte Ausgabespalte die Prozess-ID des Dienstes an, der derzeit auf 8080 ausgeführt wird:

netstat -ano | find "8080"

Ausgabe:

TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 21376 

Hier ist 21376 die Prozess-ID des Prozesses, der Port 8080 überwacht.

Unter Unix / Linux-Umgebung :

netstat -pant | grep "8080"

Ausgabe:

TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 21376 

Entspricht der Windows-Ausgabe. Hier ist 21376 die Prozess-ID des Prozesses, der Port 8080 überwacht.

Unter Mac OS X:

lsof -t -i :8080

Ausgabe:

21376

Es wird nur die PID angezeigt.

3.2. Server auf einem anderen Port ausführen

Wenn wir wissen, welcher Prozess ausgeführt wird, warum er ausgeführt wird und dass er auf diesem Port ausgeführt werden muss, können wir den Port ändern, auf dem unsere Serveranwendung ausgeführt werden soll.

Um den Tomcat-Port zu ändern, müssen wir die Datei server.xml bearbeiten . Um dies zu tun:

  • Öffnen Sie den Ordner tomcat / conf
  • edit server.xml
  • Ersetzen Sie den Anschluss durch den neuen Anschluss
  • Starten Sie den Tomcat-Server neu

Die Datei server.xml sieht folgendermaßen aus:

Jetzt wird Tomcat auf dem angepassten Port ausgeführt.

3.3. Den laufenden Dienst beenden

Um den laufenden Prozess zu stoppen, können wir den Befehl kill verwenden .

Unter Verwendung der Prozess-ID, die wir in 3.1 gefunden haben, benötigen wir je nach Betriebssystem unterschiedliche Befehle.

In der Windows-Umgebung:

taskkill /F /PID 21376

Unter Unix / Linux-Umgebung:

kill - 21376

Mac OS X-Umgebung:

kill -9 21376

4. Fazit

Wie am Anfang des Artikels erwähnt, ist java.net.BindingException ein weit verbreiteter, aber leicht zu behebender Fehler.

Die Hauptschwierigkeit besteht darin, den widersprüchlichen Dienst über den Port mit der netstat- Terminalanwendung zu finden und dann die geeignete Vorgehensweise zu bestimmen.

Einmal entdeckt, ist die Lösung einfach.