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.