Ich erhalte die folgende Fehlermeldung, wenn ich versuche, ein einfaches JSP-Programm auf Tomcat in Eclipse auszuführen.
Mehrere von Tomcat v6.0 Server unter localhost benötigte Ports (8005, 8080, 8009) werden bereits verwendet. Der Server ist möglicherweise bereits in einem anderen Prozess ausgeführt, oder ein Systemprozess verwendet den Port. Um diesen Server zu starten, müssen Sie den anderen Vorgang stoppen oder die Portnummern ändern.
Wie wird das verursacht und wie kann ich es lösen?
Sie haben bereits eine andere Instanz von Tomcat ausgeführt. Sie können dies bestätigen, indem Sie in Ihrem Webbrowser zu http://localhost:8080
gehen und prüfen, ob die Standard-Homepage von Tomcat oder eine Tomcat-spezifische 404-Fehlerseite angezeigt wird. Beide sind gleichwertige Beweise dafür, dass Tomcat gut läuft; Andernfalls hätten Sie eine browserspezifische HTTP-Verbindungszeitüberschreitungsmeldung erhalten.
Sie müssen es herunterfahren. Wechseln Sie in den Unterordner /bin
des Tomcat-Installationsordners und führen Sie das Skript shutdown.bat
(Windows) bzw. shutdown.sh
(Unix) aus. Schließen Sie in diesem Fall Eclipse, öffnen Sie den Task-Manager und beenden Sie alle Java
- und/oder javaw
-Prozesse.
Wenn Sie ihn aus irgendeinem Grund tatsächlich als Windows-Dienst installiert haben (dies ist nämlich für die Produktion gedacht und ist nicht hilfreich, wenn Sie gerade entwickeln), öffnen Sie den Dienste-Manager ( Start> Ausführen> services.msc ) und stoppen Sie der Katerdienst. Deinstallieren Sie gegebenenfalls den Windows-Dienst vollständig. Für die Entwicklung genügt die Zip-Datei.
Wenn Ihre actual intent zwei Instanzen von Tomcat gleichzeitig ausführen soll, müssen Sie die zweite Instanz so konfigurieren, dass sie auf verschiedene Ports wartet. Weitere Informationen finden Sie in der Tomcat-Dokumentation.
kill $(ps -aef | grep Java | grep Apache | awk '{print $2}')
Wenn Sie mit Windows arbeiten, versuchen Sie dies in der Eingabeaufforderung:
netstat -ano
Daraufhin werden alle verwendeten Ports und die Prozess-ID PID # des Prozesses angezeigt, der diesen Port verwendet. Dann Ctrl+Alt+Del und öffnen Sie den Task-Manager, um zu sehen, welcher Prozess das ist.
Sie können dann auswählen, ob der Server geschlossen oder gestoppt oder für die Verwendung eines anderen Ports konfiguriert werden soll. Gehen Sie folgendermaßen vor, um zu überprüfen, ob der neu ausgewählte Port (z. B. 8010) verfügbar ist:
netstat -ano | grep 8010
Wenn es keine Zeilen zurückgibt, ist alles in Ordnung.
Um den Port zu ändern, rufen Sie die Server-Ansicht auf, öffnen Sie server.xml und ändern Sie dort den Port. Meins hat diesen Eintrag:
Connector port="8010" protocol="AJP/1.3" redirectPort="8443"
Wenn Sie sich in einer Mac-Umgebung befinden, ist hier was ich getan habe.
Finden Sie die Prozess-ID, die auf diesem Port vom Terminal ausgeführt wird, z. B. 8080:
lsof -i :8080
und töte es:
kill -9 <PID>
Schritte zum Freigeben des Ports, der bereits zum Ausführen des Tomcat-Servers in Eclipse verwendet wird
Nehmen wir beispielsweise an, dass der 8080-Port verwendet wird. Wir müssen 8080 zum Ausführen von Tomcat freigeben
Schritt 1:
C:\Benutzer\Benutzername> netstat -o -n -a | findstr 0,0: 8080
TCP 0.0.0.0:3000 0.0.0.0:03 HÖREN 3116
Jetzt können wir sehen, dass LISTENING-Port 3116 für 8080 ist.
Wir müssen 3116 jetzt töten
Schritt 2:-
C:\Benutzer\Benutzername> Taskkill/F/PID 3116
Schritt 3: Gehe zu Eclipse und starte Server, es wird ausgeführt
Wenn Sie Eclipse verwenden, doppelklicken Sie auf Server und doppelklicken Sie auf Tomcat-Server, um eine Datei zu öffnen. Ändern Sie in dieser Datei den HTTP-Port in eine andere Portnummer und speichern Sie (Ctrl+S) Starten Sie dann den Server erneut.
Wenn Eclipse sagt
Mehrere von Tomcat v6.0 Server unter localhost benötigte Ports (8005, 8080, 8009) werden bereits verwendet
Dieser Fehler tritt auf, weil Tomcat möglicherweise im Hintergrund ausgeführt wird. Stoppen Sie zuerst den Server. Befolgen Sie die nachstehenden Angaben.
Lösung ist:
Vielen Dank!
Ich habe keine andere Instanz von Tomcat, die eine Anzeige ausführt. Kein anderer Prozess, der "Tomcat-Port" (in meinem Fall der 8088-Port) verwendet. Eclipse sendet beim Starten von Tomcat dieselbe Nachricht:
.... Der Server ist möglicherweise bereits in einem anderen Prozess ausgeführt, oder ein Systemprozess verwendet den Port. Um diesen Server zu starten, müssen Sie den anderen Vorgang stoppen oder die Portnummern ändern.
Ich löse das Problem auf diese Weise:
Was ich getan habe, nachdem ich alle vorgeschlagenen Antworten gelesen hatte und da ich weiß, dass mein Port bereits verwendet wurde. Ich habe in Eclipse unter der Registerkarte "Server" auf Tomcat doppelt geklickt. Daraufhin wurden Übersichtsinformationen geöffnet und dann die Portinformationen gefunden. Es wurde nur der in Konflikt stehende Port geändert, da mein Port 8009 war (Fehler beim Starten des Servers). Ich habe es in 8008 geändert und es funktioniert gut. Versuchen Sie es, wenn der geänderte Port nicht verwendet wird, und der Server wird gestartet.
Schritt 1:netstat -a -o -n und es wird eine Netzwerkliste angezeigt. Suchen Sie nach der lokalen Adresse wie 127.0.0.1:8080 und notieren Sie die PID (Gleichung 3624)
C:\>netstat -a -o -n
Schritt2:Taskkill/F/PID 3624. Führen Sie diesen Befehl aus, um den Prozess zu beenden.
C:\>taskkill /F /PID 3624
link zu posten
Einfache Möglichkeit, Ihr Problem zu lösen:
Der Server ist möglicherweise bereits in einem anderen Prozess ausgeführt, oder ein Systemprozess verwendet den Port. Um diesen Port zu töten, gehen Sie wie folgt vor:
1) Laden Sie TCPView (nur 285kb) von folgendem Link herunter.
http://technet.Microsoft.com/de-in/sysinternals/bb897437.aspx
2) Extrahieren Sie den Ordner und starten Sie die Anwendung TCPView.
3) Klicken Sie mit der rechten Maustaste auf Java.exe (weil 8009,8005 Ports normalerweise von Java-Prozessen verwendet werden) und wählen Sie die Option End Process.
dies würde leicht einen anderen Prozess stoppen.
NOTE: Wenn Sie TOMCATPATH / bin/shutdown.bat ausführen, wird Tomcat möglicherweise nicht heruntergefahren, wenn es einen Dämon oder nicht verwaltete .__ enthält. Fäden. In solchen Fällen funktioniert TCPView problemlos und problemlos.
Unter Windows verwenden Sie den Befehl, um die bereits laufende Tomcat-Instanz zu stoppen und erneut in Eclipse auszuführen. Möglicherweise funktioniert sie.
net stop Tomcat7
Oder Sie könnenden Port im Server-XMLändern, wenn Sie nur andere Ports verwenden möchten.
Hier ist eine weitere Option, um zu versuchen, wenn keine der oben genannten Anstrengungen geholfen hat. Möglicherweise verwenden Sie Eclipse von einem gemeinsam genutzten Laufwerk (z. B. H :). Verschieben Sie in diesem Fall das gesamte Eclipse-Verzeichnis nach C: und versuchen Sie es erneut.
Mein Eclipse konnte keine Ports für den Tomcat-Server öffnen (mit dem obigen Fehler) und auch keine Verbindung zum Internet herstellen. Ich habe auch ein anderes Tomcat-Plugin (Sysdeo) ausprobiert, das die Ports nicht öffnen konnte.
Dies sind die Optionen, die ich ausprobiert habe:
Weitere Tomcat-Instanzen prüfen und beenden
netstat -ano
, ob andere Prozesse die konfliktbehafteten Ports verwenden.Tomcat-Ports in Eclipse ändern
Kill Java.exe und Javaw
Siehe meine andere Antwort für Eclipse, der keine Verbindung zum Internet herstellt ( https://stackoverflow.com/a/37246087/4212710 ).
Wenn Sie sich in einem potenziellen Java EE-Projekt in Eclipse befinden und versuchen, den Tomcat-Server in Eclipse im Debugmodus zu starten, werden solche Fehler angezeigt. Sie müssen auf Debuggen in Eclipse umstellen. Ich habe mein Problem so gelöst.
Für Windows-Benutzer:
Wechseln Sie direkt zum Task-Manager mit der Tastenkombination STRG + UMSCHALT + ESC.
Beenden Sie die Prozesse "Java.exe", indem Sie mit der rechten Maustaste klicken und "Task beenden" auswählen.
Wenn die Ports auch nach dem Versuch von "shutdown.bat" nicht freigegeben werden, was @BalusC vorschlägt, können Sie den Javaw-Prozess beenden. Führen Sie folgende Schritte aus:
Geben Sie den Befehl ps ein. Möglicherweise sehen Sie ein Bild wie folgt:
Siehe die Prozessnummer des Prozesses "jawaw". Die Prozessnummer ist die ganz rechte Zahl in den Spalten, die ich beispielsweise in der Bildprozessnummer von javaw hervorgehoben habe.
Geben Sie den Befehl kill ein. jawaw wird getötet und jetzt müssen Sie das Programm ausführen können.
Das einfachere Update, das für mich funktioniert, ist das Löschen meiner aktuell bereitgestellten Webapps aus Tomcat über die Registerkarte "Server". Sobald ich sie entferne, wird das Problem behoben. Stellen Sie Ihr Projekt einfach erneut bereit, indem Sie Ausführen als> Auf Server ausführen ausführen.
Das Problem tritt häufig auf, wenn Apache Tomcat nicht ordnungsgemäß beendet wird, obwohl eine Anweisung zum Herunterfahren gesendet wurde. In meinem Fall geschieht dies bei Verwendung von Tomcat 8 mit lästiger Regelmäßigkeit. Glücklicherweise können Sie Windows PowerShell und den Befehl netstat
verwenden, um ein einfaches Skript zum Abbruch des Prozesses zu erstellen.
Das folgende PowerShell-Skript analysiert die Ausgabe von netstat
, um einen Prozess zu suchen, der auf 127.0.0.1:8005
wartet, extrahieren Sie seine PID und beenden Sie diesen Prozess:
netstat -a -o -n `
| select -skip 4 `
| % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}} `
| ? {$_.Fields[1] -match '127\.0\.0\.1\:8005$'} `
| % {Write-Host "Killing PID" $_.Fields[4] "..."; taskkill /F /PID $_.Fields[4] }
Wenn Ihr server.xml
Tomcat für die Verwendung eines anderen Ports oder einer anderen IP-Adresse konfiguriert, bearbeiten Sie den regulären Ausdruck in der vierten Zeile des Skripts entsprechend.
Abschließend möchte ich darauf hinweisen, dass die Situation unter Linux besser ist, da Sie Tomcat anweisen können, seine PID beim Start in einer Datei zu speichern und einen Switch zu verwenden, um das Herunterfahren zu erzwingen Die Fähigkeit, den Prozess und die Täuschungsarbeit mit netstat
zu beenden, ist nicht erforderlich.
Ich habe alle Antworten geprüft, aber informing only to kill PID
.
Falls Sie über einen Terminalzugriff verfügen, der von allen gemeinsam genutzt wird, hilft dies nicht oder Sie haben möglicherweise keine Berechtigung, PID zu beenden.
In diesem Fall können Sie Folgendes tun:
Double click on server
Go to Overview and change ports in Ports
wie folgt:
Einfachste Lösung
Einzeiliger Befehl zum Beenden mehrerer Ports:
kill $(lsof -t -i:8005,8080,8009) // 8005, 8080 and 8009 are the ports to be freed
Einige Ports (8005, 8080, 8009), die von Tomcat vX.X Server bei localhost benötigt werden, werden bereits verwendet
So überprüfen Sie, ob eine andere Instanz von Tomcat bereits ausgeführt wird oder ein anderer Prozess die Ports verwendet, die Sie verwenden können:
netstat -b -a
in Eingabeaufforderung für Windows. Dies listet die verwendeten Ports auf und gibt Ihnen die ausführbare Datei an, die die einzelnen Ports verwendet. Sie müssen dazu in der Administratorgruppe sein.
Sie könnten so etwas bekommen:
TCP 192.168.0.1:8009 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]
TCP 192.168.0.1:8080 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]
TCP 192.168.0.1:8005 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]
Öffnen Sie den Task-Manager Ctrl+Shift+Esc, und beenden Sie Tomcat7.exe
oder einen anderen Prozess, der diese Ports verwendet.
Dies kann daran liegen, dass Sie Ihren Tomcat-Dienst nicht ordnungsgemäß beenden. Um dies zu tun, Öffne deinen Task-Manager dort kannst du einen javaw.exe
-Dienst sehen. Stoppen Sie zuerst diesen Dienst. Starten Sie jetzt Ihren Tomcat neu und es funktioniert einwandfrei.
So beenden Sie einen Windows-Dienst mithilfe von PID -
netstat -ano
ein.taskkill /f /pid 5760
ein. Vielen Dank
töte einen Windows-Dienst, der beim Anhalten oder Starten hängen bleibt
Wenn das obige Problem in einem Betriebssystem mit Windows 7 oder 10 auftritt, tritt das Problem auf, weil Tomcat als Windows-Dienst ausgeführt wird. Öffnen Sie die Windows-Systemsteuerung, um zu verhindern, dass Tomcat als Windows-Dienste ausgeführt wird. Suchen Sie den Dienst "Apache Tomcat" und stoppen Sie den Vorgang. Die andere Möglichkeit besteht darin, den auf Port 8080 ausgeführten Prozess mit cmd zu beenden.
Öffnen Sie cmd und führen Sie es als Administrator aus.
Im Falle von Fenstern erlebte ich ein neues Zeug ... Wenn Sie Tomcat aus dem Ordner/bin stoppen, wird der Port 8080 nicht sofort freigegeben. Es dauert etwa 5-10 Minuten, bis der Port freigegeben wird. Nach 10 Minuten wieder, wenn ich versuche, mein Projekt auszuführen Ausführen-> Auf Server ausführen. Es kann ausgeführt werden.
Ich bin nicht sicher, ob mein Verständnis richtig ist!
Dein Tomcat läuft wahrscheinlich schon. Deshalb haben Sie einen Fehler erhalten. Ich hatte das gleiche Problem schon einmal. Ich habe es sehr einfach gelöst:
Das ist alles.
In meinem Fall gab es den Fehler: Der von Tomcat v8.0 Server auf localhost benötigte Port 8005 wird bereits verwendet.
Ich habe den Port 8005 in Apache-Tomcat-8.0.39\conf\server.xml geändert, aber die Änderungen wurden nicht übernommen. Dann habe ich diese Änderungen von Eclipse vorgenommen. durch Doppelklicken auf Server und Ändern des Ports von 8005 auf 8006, und es funktioniert.
Bevor ich 8006 stelle, habe ich in Windows Shell nachgefragt, ob dieser Port verfügbar ist oder nicht. Durch Ausführen des folgenden Befehls:
netstat -a -o -n | findstr 8006
Lesen Sie im folgenden Blog nach, wie Sie Tomcat beenden können, ohne den Computer neu starten zu müssen.
http://stanicblog.blogspot.fr/2012/01/how-to-kill-Apache-Tomcat-ohne.html
Ich hoffe, dass dies in Zukunft jemandem helfen wird.
Klicken Sie im Windows-Betriebssystem mit der rechten Maustaste auf die Taskleiste -> Task-Manager starten -> Prozess und prüfen Sie, ob Java.exe oder javaw ausgeführt wird, wenn es ausgeführt wird. Klicken Sie darauf und beenden Sie den Prozess Server.
Dies ist der Fall, wenn andere Benutzer des Projekts dieselben Portnummern verwenden wie Sie ! Doppelklicken Sie auf den Tomcat-Server, ändern Sie die Portnummern in 8585 oder was auch immer. Der Code beginnt jetzt zu laufen!
Auf Eclipse löschen Sie den Tomcat-Konfigurationsordner unter Projekt "Servers" . Ich habe es als letzte Hoffnung ausprobiert und es hat funktioniert.