wake-up-neo.net

Beim Versuch, ein Projekt von Spring Tool Suite aus neu bereitzustellen, wurde bereits ein 8080-Port angenommen IDE

Ich habe eine seltsame Sache, wenn ich versuche, das Spring-Projekt in meiner Spring Tool Suite zu ändern. Beim ersten Laden (Bereitstellen) ist alles in Ordnung, die Anwendung wird kompiliert und läuft auf localhost: 8080 

Wenn ich etwas im Code ändere und versuche, es erneut zu implementieren (erneut ausführen - als Spring-Boot-App ausführen), erhalte ich eine Fehlermeldung

**************************** Die Anwendung ist nicht startfähig


Beschreibung:

Der Tomcat-Connector, der für die Überwachung von Port 8080 konfiguriert ist, konnte nicht mit Start. Der Port ist möglicherweise bereits in Gebrauch oder der Connector kann .__ sein. falsch konfiguriert.

Aktion:

Überprüfen Sie die Konfiguration des Connectors, identifizieren und stoppen Sie jeden Prozess das Port 8080 überwacht, oder konfigurieren Sie diese Anwendung für das Hören an einem anderen Hafen.

2016-10-19 00: 01: 22.615 INFO 10988 --- [main] ationConfigEmbeddedWebApplicationContext: Schließen von org.springframework.boot[email protected]3023df74: Gründungsdatum [Mi Oct 19 00:01:19 CEST 2016]; Wurzel des Kontexts Hierarchie 2016-10-19 00: 01: 22.616 INFO 10988 --- [main] o.s.j.e.a.AnnotationMBeanExporter: Aufheben der Registrierung von JMX-exponiertem Bohnen beim Herunterfahren

Wenn ich den Prozess für diesen Port manuell herunterfahre, funktioniert alles wieder einwandfrei. Dies kann jedoch nicht der richtige Weg sein, um die Spring-App erneut bereitzustellen. Mache ich hier etwas falsch?

Ich verwende :: Spring Boot :: (v1.4.1.RELEASE)

P.S. Ich bin mir bewusst, dass ich eine Art Hot-Swap-Mechanismus einrichten kann, um das automatische Neuladen der Seite nach dem Ändern des Codes zu ermöglichen. Im Moment möchte ich dieses Problem jedoch zuerst beheben.

Vielen Dank für jede Art von Hilfe oder Informationen.

22
milan.latinovic

Es kommt manchmal vor, dass in IDE mit Hilfe der - roten Taste keine Prozesse mehr ausgeführt werden, und der gleiche Fehler weiterhin auftritt.

Es wurde mit folgenden Schritten gelöst:

  1. Überprüfen Sie, welche Prozesse an verfügbaren Ports ausgeführt werden

    netstat -ao |find /i "listening"

    Wir bekommen folgen

    TCP 0.0.0.0:7981 machinename:0 LISTENING 2428 TCP 0.0.0.0:7982 machinename:0 LISTENING 2428 TCP 0.0.0.0:8080 machinename:0 LISTENING 12704 TCP 0.0.0.0:8500 machinename:0 LISTENING 2428

    portnummern und welche Prozess-ID sie hören

  2. Stoppen Sie den Prozess an Ihrer Portnummer (in diesem Fall ist es 8080 und Prozess-ID ist 12704)

    Taskkill /F /IM 12704 (Hinweis: Richtige Prozess-ID angeben)

Mein Problem wurde damit gelöst. Hoffe, das hilft!

39
rdj7

In meinem Fall trat der Fehler auf, da die Anwendung nicht auf den Keystore für SSL zugreifen konnte.

Das Starten der Anwendung als root-Benutzer hat das Problem behoben.

16
Registered User

Sie müssen den aktuellen Prozess stoppen und Ihren neuen Prozess ausführen. In Eclipse können Sie diese Schaltfläche drücken, um Ihre Anwendung erneut zu starten:  enter image description here

15
lukle

Für Mac-Benutzer (OS X El Capitan): .__ Sie müssen den Port, auf dem localhost: 8080 ausgeführt wird, unter ..__ beenden. Dazu müssen Sie zwei Befehle im Terminal ausführen.

Sudo lsof -i tcp: 8080

töte -15 PID 

NB! PID IS EINE NUMMER DES ERSTEN BEFEHLS.

Der erste Befehl gibt Ihnen die PID für den localhost: 8080. Ersetzen Sie die PID im zweiten Befehl durch die PID, die Sie mit dem ersten Befehl erhalten, um den auf localhost ausgeführten Prozess zu beenden: 8080.

10
jsog

Wenn auf Ihrer Konsole ein Fehler aufgetreten ist: „Der eingebettete Servlet-Container konnte nicht gestartet werden. Port 8080 wurde bereits verwendet. “Wechseln Sie dann zur Datei application.properties und fügen Sie diese Eigenschaft„ server.port = 8090 “hinzu.

Der Standardport für Spring Boot ist 8080. Wenn Sie an diesem Port etwas anderes haben, wird der obige Fehler angezeigt. Daher bitten wir Spring Boot, auf einem anderen Port zu laufen, indem Sie in der Datei application.properties "server.port = 8090" hinzufügen.

7
Hari Tummala

Dies ist ein typischer Startfehler, da der Port des embedded Servlet-Containers verwendet wird. 

Der eingebettete Tomcat-Container konnte nicht gestartet werden, da Port 8080 bereits verwendet wurde.

Identifizieren und stoppen Sie den Prozess, der Port 8080 überwacht, oder konfigurieren Sie diese Anwendung (in Ihrer Datei application.properties), um einen anderen Port zu überwachen.

7
georges van

Es gibt zwei Möglichkeiten, um dieses Problem zu beheben. Versuchen Sie zuerst Option 1, wenn dies nicht funktioniert, probieren Sie Option 2 aus, und Ihr Problem ist gelöst.

1) In der rechten oberen Ecke Ihrer Konsole befindet sich ein roter Button. Um die Spring Boot-Anwendung zu stoppen, die bereits an diesem Port ausgeführt wird, klicken Sie einfach auf den roten Button, um den Vorgang zu beenden.

2) Wenn die rote Schaltfläche nicht aktiviert ist, klicken Sie mit der rechten Maustaste auf die Konsole und wählen Sie Alle beenden/trennen. Hoffe das hilft.

Bonus-Tipp: - Wenn Sie Ihren Server an einem anderen Port Ihrer Wahl ausführen möchten, erstellen Sie im Ressourcenordner Ihres Maven-Projekts eine Datei mit dem Namen application.properties und schreiben Sie server.port = 3000, um Ihre Anwendung auf Port 3000 auszuführen

4
Shubham Chopra

Der Grund ist, dass ein Servlet-Container bereits an Port 8080 ausgeführt wird und Sie versuchen, einen anderen an Port 8080 auszuführen.

  1. Überprüfen Sie, welche Prozesse an verfügbaren Ports ausgeführt werden.

  2. Versuchen Sie nun, oder erneut zu starten, und beenden Sie Ihre Anwendung .

Gehen Sie zum Task-Manager und beenden Sie die Java (tm) -Plattform über binär. Klicken Sie hier, um imagehttps://www.google.com/search?q=what+ anzuzeigen ist + Java (tm) + Plattform + se + binär & oq = was + ist + Java (tm) + Plattform + se + binär & aqs = chrome..69i57.26349j1j7 & sourceid = chrome & dh = UTF-8

  1. Gehen Sie zu application.propertie s Dateisatz server.port = 0. Dies führt dazu, dass Spring Boot bei jedem Start einen zufälligen freien Port verwendet.
3

Mache ich hier etwas falsch?

Ja, das bist Du. Ein Servlet-Container ist bereits auf Port 8080 ausgeführt, und Sie versuchen erneut, einen weiteren Port 8080 auszuführen.

Starten Sie den Server entweder neu (wenn in STS dafür eine Schaltfläche vorhanden ist) oder stoppen und starten Sie ihn

3
so-random-dude

Öffnen Sie "localhost: 8080" in Ihrem Browser und sehen Sie, was auf diesem Port ausgeführt wird. Ich tat es und fand Oracle 10g XE im Hintergrund ausgeführt. Ich ging zu start-> Services und stoppte alle Oracle-Services. Dann wiederhole ich mvnw spring-boot:run auf IntelliJ und es läuft wie von Zauberhand.

2
samivic

Klicken Sie einfach auf die rote Schaltfläche, um alle Dienste auf Eclipse zu beenden, und führen Sie die Anwendung als Spring Boot-Anwendung erneut aus. Dies hat für mich funktioniert. 

2
besartm

das Erstellen einer einfachen Zeile in application.properties mit SERVER_PORT = 8090 hat das Problem gelöst.

2
mohan krishna

Speichern Sie auf einer Linux-Maschine das Bash-Skript und führen Sie es aus. Wenn Sie den Port 8080 freigeben möchten, geben Sie bei Aufforderung 8080 ein 

echo "Enter port number to be closed :: "
read port
Sudo kill $(Sudo lsof -t -i:$port)
2
singh30

Erstellen Sie eine application.properties-Datei im Ordner src/main/resources und schreiben Sie den Inhalt als 

server.port = 8084

Es läuft gut . Aber vor jedem Lauf muss die Anwendung zuerst durch Klicken auf die rote Schaltfläche oben in der IDE .__ beendet werden.enter image description here

oder Versuche 

Klicken Sie mit der rechten Maustaste auf die Konsole und klicken Sie auf Beenden/Alle trennen

2
yogii

Es gibt einige Prozesse, die im Hintergrund an diesem Port verbleiben. Dieses Problem kann aus verschiedenen Gründen auftreten. Sie können dieses Problem jedoch leicht lösen, wenn Sie den Prozess beenden, der mit 8080 oder Spring zusammenhängt.

Wenn Sie Linux verwenden, gibt es Schritte zum Beenden des Prozesses:

  1. Terminal öffnen und Befehl "htop" eingeben
  2. drücken Sie die Taste F3 (damit können Sie suchen)
  3. Geben Sie "8080" ein, wenn nach 8080 kein Ergebnis erzielt wurde. Versuchen Sie "Feder".
  4. Drücken Sie dann F9 (KILL) und drücken Sie "9" (SIGKILL)

dadurch wird der Prozess abgebrochen, der am 8080-Port verbleibt, und Sie können die Anwendung ausführen. 

1
twinster

Wenn Sie ein Linux-System verwenden, verwenden Sie den folgenden Befehl.

fuser -k some_port_number/tcp - das wird diesen Prozess abbrechen.

Stichprobe:-

fixiereinheit -k 8080/tcp

0

Keine Notwendigkeit, eine Anwendung jedes Mal zum Zeitpunkt der Entwicklung manuell zu starten, um Änderungen zu implementieren. Verwenden Sie dazu die Abhängigkeit von Spring-Boot-Devtool-Maven.

Automatischer Neustart: Um das Modul zu verwenden, müssen Sie es einfach als Abhängigkeit in Ihren Maven POM einfügen:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
    </dependency>

Wenn Sie das Modul spring-boot-devtools enthalten haben, lösen alle Änderungen an der Klassenpfaddatei automatisch einen Neustart der Anwendung aus. Wir machen einige Tricks, um einen schnellen Neustart zu erreichen. Für viele Anwendungen im Mikroservice-Stil ist diese Technik möglicherweise ausreichend.

0
MangduYogii

In der Spring-Boot-Anwendung (unter Verwendung des Spring Starter-Projekts) verfügen wir über einen Aktualisierungsport in Server.xml mit einem Tomcat-Server und fügen diesen Port in application.property (insrc/main/resources) .__ hinzu. Der Code lautet server.port = 8085

Und aktualisieren Sie Maven Project und führen Sie dann die Anwendung aus

0
Shubham Kumawat