Ich erhalte die folgende Fehlermeldung, wenn ich versuche, ein einfaches JSP-Programm auf Tomcat in Eclipse auszuführen.
Mehrere Ports (8005, 8080, 8009), die von Tomcat v6.0 Server bei localhost benötigt werden, werden bereits verwendet. Der Server wird möglicherweise bereits in einem anderen Prozess ausgeführt, oder ein Systemprozess verwendet möglicherweise den Port. Um diesen Server zu starten, müssen Sie den anderen Prozess stoppen oder die Portnummer (n) ändern.
Wie wird das verursacht und wie kann ich es lösen?
netstat -ano | findStr 8080
um die laufenden Dienste zu finden und dann die Prozess-ID zu finden und dietaskkill /F /PID pid_number
Antworten:
Sie haben bereits eine andere Instanz von Tomcat ausgeführt. Sie können dies bestätigen, indem Sie
http://localhost:8080
in Ihrem Webbrowser nachsehen, ob Sie die Tomcat-Standardhomepage oder eine Tomcat-spezifische 404-Fehlerseite erhalten. Beide sind gleichermaßen gültige Beweise dafür, dass Tomcat einwandfrei funktioniert. Wenn dies nicht der Fall wäre, hätten Sie eine browserspezifische Fehlermeldung zum Timeout der HTTP-Verbindung erhalten.Sie müssen es herunterfahren.
/bin
Wechseln Sie in den Unterordner des Tomcat-Installationsordners und führen Sie das Skriptshutdown.bat
(Windows) odershutdown.sh
(Unix) aus. Wenn dies vergeblich ist, schließen Sie Eclipse, öffnen Sie den Task-Manager und beenden Sie allejava
und / oderjavaw
Prozesse.Oder wenn Sie es aus irgendeinem Grund tatsächlich als Windows-Dienst installiert haben (dies ist nämlich für die Produktion vorgesehen und bei der Entwicklung nicht hilfreich), öffnen Sie den Dienstmanager ( Start> Ausführen> services.msc) Dienstmanager ) und beenden Sie den Tomcat-Dienst. Deinstallieren Sie gegebenenfalls den Windows-Dienst vollständig. Für die Entwicklung reicht nur die ZIP-Datei aus.
Wenn Sie tatsächlich zwei Instanzen von Tomcat gleichzeitig ausführen möchten, müssen Sie die zweite Instanz so konfigurieren, dass sie verschiedene Ports überwacht. Weitere Informationen finden Sie in der Tomcat-Dokumentation.
quelle
sh shutdown.sh
im Terminal im Verzeichnis / bin ausgeführt.shutdown.bat
In meinem bin-Ordner befindet sich kein . Tomcat wurde als Dienst und nicht als Zip installiert. Das Beenden des Tomcat-Dienstes in Diensten hat das Problem behoben. Vielen Dank. Chenqui.system monitor
odertask manager
und das Beenden eines Java-Prozesses, derabout 400 MB
oder mehr verwendetRAM
, löst ebenfalls das Problem. Es reserviert unwissentlich den Prozess.quelle
kill $(ps -aef | grep java | grep apache | awk '{print $2}')
kill
Befehl.Wenn Sie unter Windows ausgeführt werden, versuchen Sie dies in der Eingabeaufforderung:
Dies zeigt alle verwendeten Ports und die Prozess-ID PID # des Prozesses an, der diesen Port verwendet. Dann Ctrl+ Alt+ Delund öffnen Sie den Task-Manager, um zu sehen, welcher Prozess das ist.
Sie können dann entweder schließen / stoppen oder Ihren Server für die Verwendung eines anderen Ports konfigurieren. Gehen Sie folgendermaßen vor, um zu überprüfen, ob der neu ausgewählte Port (z. B. 8010) verfügbar ist:
Wenn keine Zeilen zurückgegeben werden, ist alles in Ordnung.
Um den Port zu ändern, gehen Sie zur Serveransicht , öffnen Sie die Datei server.xml und ändern Sie dort den Port. Meins hat diesen Eintrag:
quelle
findstr
für diejenigen ohne grep.Wenn Sie sich in einer Mac-Umgebung befinden, habe ich Folgendes getan.
Suchen Sie die Prozess-ID, die an diesem Port vom Terminal aus ausgeführt wird, z. B. 8080:
und töte es:
Beispiel:
Möglicherweise sehen Sie folgendes Ergebnis:
und töte es: (
kill -9 21347
)quelle
Schritte zum Freigeben des Ports, der bereits zum Ausführen des Tomcat-Servers in Eclipse verwendet wird
Angenommen, der 8080-Port wird verwendet. Wir müssen 8080 frei machen, um Tomcat ausführen zu können
Schritt 1:
C: \ Benutzer \ Benutzername> netstat -o -n -a | findstr 0.0: 8080
TCP 0.0.0.0:3000 0.0.0.0:0 HÖREN 3116
Jetzt können wir sehen, dass der LISTENING-Port 3116 für 8080 ist.
Wir müssen jetzt 3116 töten
Schritt 2:-
C: \ Benutzer \ Benutzername> Taskkill / F / PID 3116
Schritt 3: Gehen Sie zu Eclipse und starten Sie den Server. Er wird ausgeführt
quelle
Wenn Sie Eclipse verwenden, doppelklicken Sie auf Server und doppelklicken Sie auf Tomcat-Server. Dann wird eine Datei geöffnet. Ändern Sie in dieser Datei den HTTP-Port in eine andere Portnummer und speichern Sie ( Ctrl+ S), und starten Sie den Server erneut.
quelle
Wenn Eclipse sagt
Dieser Fehler tritt auf, weil Tomcat möglicherweise im Hintergrund ausgeführt wird. Stoppen Sie also zuerst diesen Server. Befolgen Sie die folgenden Details.
Lösung ist:
Vielen Dank!
quelle
Ich habe keine andere Instanz von Tomcat, die einen anderen Prozess mit "Tomcat-Port" ausführt (in meinem Fall den 8088-Port). Eclipse sendet beim Starten von Tomcat dieselbe Nachricht:
.... Der Server wird möglicherweise bereits in einem anderen Prozess ausgeführt, oder ein Systemprozess verwendet möglicherweise den Port. Um diesen Server zu starten, müssen Sie den anderen Prozess stoppen oder die Portnummer (n) ändern.
Ich löse das Problem folgendermaßen:
quelle
Was ich getan habe, nachdem ich alle vorgeschlagenen Antworten gelesen hatte und wie ich weiß, war mein Port bereits in Gebrauch. Ich habe in Eclipse auf der Registerkarte Server auf Tomcat doppelklickt und dort Übersichtsinformationen geöffnet und dann Portinformationen gefunden. Ich habe gerade den widersprüchlichen Port geändert, da meiner 8009-Port war (Fehler beim Starten des Servers erwähnt). Ich habe es auf 8008 geändert und es funktioniert gut. Probieren Sie es aus, wenn der geänderte Port nicht verwendet wird. Der Server wird gestartet.
quelle
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).
Schritt 2: Taskkill / F / PID 3624 . Führen Sie diesen Befehl aus, um diesen Prozess abzubrechen.
Link zum Posten
quelle
Verwenden Sie unter Windows den Befehl, um die bereits ausgeführte Tomcat-Instanz zu stoppen und erneut in Eclipse auszuführen. Möglicherweise funktioniert sie.
Sie können den Port auch im XML des Servers ändern, wenn Sie nur auf einigen anderen Ports ausgeführt werden möchten.
quelle
Einfache Möglichkeit, Ihr Problem zu lösen:
Der Server wird möglicherweise bereits in einem anderen Prozess ausgeführt, oder ein Systemprozess verwendet möglicherweise den Port. Gehen Sie wie folgt vor, um diesen Port zu beenden:
1) Laden Sie TCPView (nur 285 KB) über den folgenden Link herunter .
http://technet.microsoft.com/en-in/sysinternals/bb897437.aspx
2) Extrahieren Sie den Ordner und starten Sie die TCPView- Anwendung.
3) Klicken Sie mit der rechten Maustaste auf java.exe (da 8009.8005 Ports häufig vom Java-Prozess verwendet werden) und wählen Sie Prozess beenden Option.
Dies würde einen anderen Prozess leicht stoppen.
HINWEIS : Wenn Sie TOMCATPATH / bin / shutdown.bat ausführen, wird Tomcat möglicherweise nicht heruntergefahren, wenn es einige Dämonen oder nicht verwaltete Threads enthält. In solchen Fällen funktioniert TCPView ohne Probleme.
quelle
Wenn Sie sich in Eclipse in Java EE befinden und versuchen, den Tomcat-Server in Eclipse im Debug-Modus zu starten, werden solche Fehler angezeigt. Sie müssen in Eclipse zum potenziellen Debuggen wechseln. Ich habe mein Problem so gelöst.
quelle
Manchmal, wenn die Ports auch nach dem Versuch von shutdown.bat nicht freigegeben werden, was @BalusC vorgeschlagen hat, können Sie den Javaw-Prozess beenden. Führen Sie die folgenden Schritte aus:
Geben Sie den Befehl ps ein. Möglicherweise sehen Sie ein Bild wie folgt:
Siehe die Prozessnummer des Prozesses "javaw". Die Prozessnummer ist die Nummer ganz rechts in den Spalten, die ich zum Beispiel in der Bildprozessnummer von javaw hervorgehoben habe.
Geben Sie den Befehl kill ein. javaw wird getötet und jetzt müssen Sie das Programm ausführen können.
quelle
Hier ist eine weitere Option, um zu versuchen, ob keine der oben genannten Bemühungen geholfen hat. Möglicherweise verwenden Sie Eclipse von einem freigegebenen Laufwerk (z. B. H :) . Wenn ja, verschieben / kopieren Sie das gesamte Eclipse-Verzeichnis nach C: und versuchen Sie es erneut.
Mein Eclipse konnte weder Ports für Tomcat-Server öffnen (mit dem oben genannten Fehler) noch eine Verbindung zum Internet herstellen. Ich habe auch ein anderes Tomcat-Plugin (Sysdeo) ausprobiert, bei dem die Ports ebenfalls nicht geöffnet werden konnten.
Dies sind die Optionen, die ich ausprobiert habe:
Überprüfen und töten Sie andere Tomcat-Instanzen
netstat -ano
Überprüfen Sie an der Eingabeaufforderung, ob andere Prozesse die in Konflikt stehenden Ports verwenden.Ändern Sie die Tomcat-Ports in Eclipse
Töte java.exe und javaw
Siehe meine andere Antwort für Eclipse, die keine Verbindung zum Internet herstellt ( https://stackoverflow.com/a/37246087/4212710 ).
quelle
Für Windows-Benutzer:
Wechseln Sie mit der Tastenkombination STRG + UMSCHALT + ESC direkt zum Task-Manager.
Beenden Sie die "java.exe" -Prozesse, indem Sie mit der rechten Maustaste klicken und "Task beenden" auswählen.
quelle
Ich habe aber alle Antworten überprüft
informing only to kill PID
.Falls Sie über einen von allen gemeinsam genutzten Terminalzugriff verfügen, hilft dies nicht oder Sie haben möglicherweise keine Berechtigung zum Beenden der PID .
In diesem Fall können Sie Folgendes tun:
Double click on server
Go to Overview and change ports in Ports
so was:quelle
Die einfachere Lösung, die für mich funktioniert, ist das Löschen meiner aktuell bereitgestellten Webanwendungen von Tomcat über die Registerkarte "Server". Sobald ich sie entferne, verschwindet das Problem. Stellen Sie Ihr Projekt einfach erneut bereit, indem Sie auf Ausführen als> Auf Server ausführen klicken.
quelle
Das Problem tritt häufig auf, wenn Apache Tomcat nicht ordnungsgemäß beendet werden kann, obwohl eine Anweisung zum Herunterfahren gesendet wurde. In meinem Fall geschieht dies mit Tomcat 8 mit ärgerlicher Regelmäßigkeit. Zum Glück können Sie Windows PowerShell und das verwenden
netstat
Befehl verwenden, um ein einfaches Skript zum Beenden des Prozesses zu erstellen.Das folgende PowerShell-Skript analysiert die Ausgabe
netstat
, um einen Prozess zu finden, der abgehört wird127.0.0.1:8005
, extrahiert seine PID und beendet diesen Prozess:Wenn Sie
server.xml
Tomcat so konfigurieren, dass ein anderer Port oder eine andere IP verwendet wird, 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 das Herunterfahren später mithilfe eines Schalters zu erzwingen. Das Skript zum Herunterfahren für 'nix-Systeme enthält bereits die Die Fähigkeit, den Prozess und die Arbeit mit den Ärgernissen zu beenden,
netstat
ist nicht erforderlich.quelle
Wenn das oben genannte Problem unter Windows 7 oder 10 auftritt, tritt das Problem auf, weil Tomcat als Windows-Dienst ausgeführt wird. Öffnen Sie die Windows-Systemsteuerung, um die Ausführung von Tomcat als Windows-Dienste zu beenden. Suchen Sie den Dienst "Apache Tomcat" und beenden Sie ihn. Die andere Möglichkeit besteht darin, den auf Port 8080 ausgeführten Prozess mit cmd abzubrechen.
Öffnen Sie cmd, indem Sie es als Administrator ausführen.
C: \ Benutzer \ Benutzername> Taskkill / F / PID 2160
quelle
Dies kann daran liegen, dass Sie Ihren Tomcat-Dienst nicht ordnungsgemäß beenden. Um dies zu tun, öffnen Sie den Task - Manager dort können Sie einen sehen
javaw.exe
Service. Stoppen Sie zuerst diesen Dienst. Starten Sie jetzt Ihren Kater neu, es funktioniert einwandfrei.quelle
In meinem Fall gab es den Fehler: Port 8005, der von Tomcat v8.0 Server bei localhost benötigt wird, wird bereits verwendet
Ich habe den 8005-Port 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 funktioniert es.
Vor dem Setzen von 8006 habe ich in der Windows-Shell überprüft, ob dieser Port verfügbar ist oder nicht. Durch Ausführen des folgenden Befehls:
quelle
Ich habe das gleiche Problem und nachdem ich die Antwort wie unten gezeigt gesucht habe: 1. Öffnen Sie Monitor Tomcat wie unten gezeigt:
Endlich funktioniert es bei mir nach vielen Versuchen und Lösungsvorschlägen.
Beste Grüße, Kerelos Mikhail
quelle
Führen Sie unter Eclipse unter Projekt "Server" einen unformatierten Löschvorgang für den Tomcat-Konfigurationsordner durch. Ich habe es als letzte Hoffnung versucht und es hat funktioniert.
quelle
Im Falle von Windows habe ich ein neues Problem festgestellt: Wenn Sie Tomcat aus dem Ordner / bin stoppen, wird der Port 8080 nicht sofort freigegeben. Das Freigeben des Ports dauert ca. 5-10 Minuten. Nach 10 Minuten erneut, wenn ich versuche, mein Projekt Run-> Run on Server auszuführen. Es ermöglicht die Ausführung.
Ich bin mir nicht sicher, ob mein Verständnis richtig ist!
quelle
Lesen Sie den folgenden Blog "Wie Sie Tomcat töten, ohne Ihren Computer neu starten zu müssen"
http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html
Hoffe das wird jemandem in Zukunft helfen.
quelle
Es tritt auf, wenn andere im Projekt dieselben Portnummern verwenden wie Sie! Doppelklicken Sie auf den Tomcat-Server, ändern Sie die Portnummern in 8585 oder was auch immer. Der Code wird jetzt ausgeführt!
quelle
So beenden Sie einen Windows-Dienst mit PID -
netstat -ano
taskkill /f /pid 5760
Vielen Dank
Beenden Sie einen Windows-Dienst, der beim Stoppen oder Starten hängen bleibt
quelle
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:
Sie könnten so etwas bekommen:
Öffnen Sie den Task-Manager Ctrl+ Shift+ Escund beenden Sie
Tomcat7.exe
oder einen anderen Prozess über diese Ports.quelle
Ihr Tomcat läuft wahrscheinlich bereits. Deshalb haben Sie einen Fehler. Ich hatte das gleiche Problem schon einmal. Ich habe es ganz einfach gelöst:
Das ist alles.
quelle