webentwicklung-frage-antwort-db.com.de

Spring Boot-Anwendung in Eclipse, der für die Überwachung von Port XXXX konfigurierte Tomcat-Connector, konnte nicht gestartet werden

Ich entwickle eine API REST mit Spring Framework

Zuerst konnte ich meine Anwendung wegen des gleichen Problems nicht ausführen. Der Port 8080 auf meinem Computer ist ausgelastet. Dann fand ich heraus, dass eine Alternative zur Lösung dieses Problems die Erstellung eines application.properties Datei unter src/main/resources Mappe. Das habe ich gemacht und den Server so eingerichtet, dass er auf Port 8090 lauscht. Dies funktionierte jedoch nur zum ersten Mal. Jetzt erhalte ich die gleiche Ausnahme, wenn ich versuche, die Anwendung zum zweiten Mal auszuführen.

Description:

The Tomcat connector configured to listen on port 8090 failed to start. The port may already be in use or the connector may be misconfigured.

Action:

Verify the connector's configuration, identify and stop any process that's listening on port 8090, or configure this application to listen on another port.

Soweit ich weiß, verwendet dieses Framework eine eingebettete Instanz von Apache Tomcat, um jede Anwendung bereitzustellen.

Ich vermute, der Server wird nicht neu gestartet, wenn ich das zweite Mal versuche, die App auszuführen. Aus diesem Grund wird in der Ausgabe "Der Port wird möglicherweise bereits verwendet oder der Connector ist möglicherweise falsch konfiguriert" angezeigt.

Eine spezifischere Frage wäre also, wie ich die eingebettete Instanz von Apache Tomcat entweder manuell oder programmgesteuert verwalten kann.

Ich habe auch den Port im application.properties Datei zweimal. Es funktioniert gut, aber wieder nur zum ersten Mal. Wie Sie sich vorstellen können, kann ich nicht jedes Mal das Gleiche tun, wenn die App ausgeführt wird.

32
Sandoval0992

Wenn Sie in der Konsole oben rechts im Dialogfeld nachsehen, sollten Sie einen roten Knopf sehen, der einem Summer ähnelt. Um die Spring Boot-Anwendung ordnungsgemäß zu stoppen, müssen Sie nur diesen "roten" Knopf drücken, und Ihr Problem ist gelöst. Hoffe das hilft!

35
Edge
  1. Suchen Sie die Prozess-ID (PID) für den Port (z. B .: 808).

    Unter Windows:

    netstat -ao | find "8080"
    

    Andere Plattformen außer Windows:

    lsof -i:8080
    
  2. Beenden Sie die gefundene Prozess-ID (z. B. 20712).

    Unter Windows:

    Taskkill /PID  20712 /F
    

    Andere Plattformen außer Windows:

    kill -9 20712   or kill 20712
    
52
sy456

Eine andere einfache Möglichkeit, diesen Fehler zu beheben, besteht darin, mit der rechten Maustaste in die Konsole zu klicken und auf Alle beenden/trennen zu klicken. Führen Sie anschließend die Anwendung aus, damit sie ordnungsgemäß funktioniert.

23
DvixExtract

Dies liegt daran, dass Sie Ihre Anwendung nicht stoppen, bevor Sie sie ein weiteres Mal starten. Daher wird darauf hingewiesen, dass der Port bereits verwendet wird.

Sie sollten die Anwendung immer stoppen, bevor Sie sie erneut starten, da sonst Probleme mit Portkonflikten auftreten.

Abhängig von Ihrer Plattform können Sie netstat -anp | find "port number" Verwenden, wenn Sie es unter Windows ausführen, oder wenn Sie es unter Linux ausführen, netstat -ntpl | grep "port number" Oder wenn Sie einen Mac verwenden, lsof -n -iTCP:"port number".

10
Amit Khandelwal

Ich stelle bereits dieses Problem gegenüber, als ich das erste Mal und dann wieder ich ein anderes Projekt laufen lassen möchte, das ich erhielt:

The Tomcat connector configured to listen on port 8088 failed to start. The port may already be in use or the connector may be misconfigured.

Action:

Verify the connector's configuration, identify and stop any process that's listening on port 8088, or configure this application to listen on another port.

Und schließlich habe ich eine Lösung dafür, die im folgenden Screenshot zu sehen ist:

enter image description here

Klicken Sie mit der rechten Maustaste auf die Registerkarte Konsole -> und wählen Sie Alle beenden/trennen und Versuchen Sie nun, Ihren Code auszuführen.

Hinweis : Vergessen Sie nicht, Ihren Server zu stoppen, bevor Sie ihn erneut ausführen.

10
Tell Me How

Suchen Sie den Prozess und beenden Sie ihn. Führen Sie unter Windows die Tastenkombination STRG + ALT + ENTF aus, und suchen Sie den Prozess "Java (TM) Platform SE Binary" auf der Registerkarte "Prozesse". Beispielsweise: enter image description here

Unter Ubuntu können Sie "ps aux | grep Java" verwenden, um den Prozess zu finden, und "kill -9 PID_NUMBER", um den Prozess abzubrechen.

OR

Wenn Sie eine Spring-Boot-Anwendung verwenden, rufen Sie application.properties auf und fügen Sie Folgendes hinzu:

server.port = 8081
9
Gene

Wenn Ihre App unter httpS ausgeführt wird, stellen Sie sicher, dass Sie die richtigen Werte unter den folgenden Eigenschaften angeben:

server.ssl.key-store-password=
server.ssl.key-alias=

Ich habe den gleichen Fehler erhalten, als ich hier die falschen Werte eingegeben habe

3
Filip
  1. überprüfen Sie den belegten Port: netstat -ntlp
  2. töte diesen Port: kill -9 xxxx
2
alok

Es gibt zwei Möglichkeiten, mit dieser Situation umzugehen/sie zu vermeiden.

  1. Vor dem erneuten Ausführen der Anwendung beenden Sie einfach die vorherige Verbindung.

    • Open the console --> right click --> terminate all.
  2. Wenn Sie vergessen haben, die Aktion auszuführen, erwähnen Sie Schritt 1

    • Finden Sie heraus, welcher Port von Ihrer Anwendung verwendet wird, und sehen Sie den Stack-Trace im Konsolenfenster
    • Ermitteln Sie die dem Port zugeordnete Prozess-ID, indem Sie den Befehl netstat -aon in cmd ausführen
    • Beenden Sie diesen Prozess und führen Sie die Anwendung erneut aus.
1
Ashish Patel

Unter Windows:

Öffnen Sie zunächst den Befehl Eingabeaufforderung, indem Sie auf Start klicken und dann cmd eingeben. Geben Sie im Befehlsfenster den folgenden Befehl ein:

netstat -a -n -o

Im obigen Befehl wird mit dem Parameter -o die PID am Ende der Tabelle hinzugefügt. Drücken Sie die Eingabetaste und Sie sollten so etwas sehen:

enter image description here

Um den Namen des Prozesses anzuzeigen, der diesen Port verwendet, rufen Sie den Task-Manager auf, indem Sie STRG + UMSCHALT + ESC drücken und dann auf die Registerkarte Prozess klicken. In Windows 10 sollten Sie auf die Registerkarte Details klicken.

Standardmäßig zeigt der Task-Manager die Prozess-ID nicht an, daher müssen Sie auf Ansicht und dann auf Spalten auswählen klicken.

Möglicherweise müssen Sie sich auch mit Diensten befassen, die im Hintergrund ausgeführt werden. Klicken Sie dazu mit der rechten Maustaste und wählen Sie die folgenden offenen Dienste aus:

enter image description here

Ich hoffe es hilft :)

1
Devender Goyal

dieses Problem kann auf zwei Arten behoben werden:

  1. Beenden Sie die Anwendung, die auf 8080 ausgeführt wird
netstat -ao | find "8080"

Taskkill /PID 1342 /F
  1. ändern Sie den Spring-Server-Port in der Datei application.properties

server.port = 8081

0
Sumit Jadiya