Ich habe seltsame Dinge, wenn ich versuche, das Spring-Projekt in meiner Spring Tool Suite zu modifizieren. Beim ersten Laden (Bereitstellen) ist alles in Ordnung, die Anwendung kompiliert und läuft auf localhost: 8080
Wenn ich etwas im Code ändere und versuche, es erneut zu implementieren (Ausführen - Starten als Spring Boot-App), erhalte ich die Fehlermeldung
********************************************************
Beschreibung:
Der Tomcat-Connector, der für die Überwachung von Port 8080 konfiguriert wurde, konnte nicht gestartet werden Anfang. Der Port wird möglicherweise bereits verwendet oder der Anschluss ist möglicherweise falsch konfiguriert.
Aktion:
Überprüfen Sie die Konfiguration des Anschlusses, identifizieren und stoppen Sie jeden Vorgang das ist auf Port 8080 zu hören, oder konfigurieren Sie diese Anwendung zu hören an einem anderen Port.
2016-10-19 00: 01: 22.615 INFO 10988 --- [main] ationConfigEmbeddedWebApplicationContext: Schließen org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@3023df74: Startdatum [Mi 19. Oktober 00:01:19 CEST 2016]; Wurzel des Kontextes Hierarchie 2016-10-19 00: 01: 22.616 INFO 10988 --- [main] o.s.j.e.a.AnnotationMBeanExporter: Aufheben der Registrierung von JMX-exposed Beans beim Herunterfahren
Wenn ich den Prozess an diesem Port manuell herunterfahre, funktioniert alles wieder gut, aber das kann nicht der richtige Weg sein, die Spring App neu zu implementieren. 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 die Seite automatisch neu laden zu lassen, nachdem ich den Code geändert habe, aber jetzt möchte ich dieses Problem zuerst lösen.
Danke für jede Art von Hilfe oder Info.
Manchmal passiert es sogar, wenn wir die Prozesse in der IDE mit Hilfe der roten Taste stoppen, wir bekommen immer den gleichen Fehler (ich weiß nicht wie, aber es ist mir passiert)
Es wurde mit den folgenden Schritten gelöst,
Überprüfen Sie, welche Prozesse an verfügbaren Ports ausgeführt werden
netstat -ao |find /i "listening"
Wir bekommen folgende
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
d. Portnummern und welche Prozess-ID sie hören
Stoppen Sie den Prozess an Ihrer Port-Nummer (In diesem Fall ist es 8080 & amp; Process Id ist 12704)
Taskkill /F /IM 12704
(Hinweis: Geben Sie die richtige Prozess-ID an)
Mein Problem wurde damit gelöst, hoffe das hilft!
In meinem Fall ist der Fehler aufgetreten, da die Anwendung nicht auf den Keystore für SSL zugreifen konnte.
Das Starten der Anwendung als root-Benutzer hat das Problem behoben.
Dies ist ein typischer Startfehler, weil der Port des eingebetteten Servlet-Containers verwendet wird.
Ihr eingebetteter Tomcat-Container konnte nicht gestartet werden, weil Port 8080 bereits verwendet wurde.
Identifizieren und stoppen Sie einfach den Prozess, der an Port 8080 überwacht wird, oder konfigurieren Sie (in Ihrer application.properties -Datei) diese Anwendung, um sie an einem anderen Port abzurufen.
Wenn auf Ihrer Konsole ein Fehler auftritt, indem Sie sagen: "Der eingebettete Servlet-Container konnte nicht gestartet werden. Port 8080 wurde bereits verwendet. "Gehen Sie dann zur Datei application.properties und fügen Sie diese Eigenschaft" server.port = 8090 "hinzu.
Eigentlich ist der Standard-Port für Spring-Boot 8080, wenn Sie etwas anderes an diesem Port haben, tritt der obige Fehler auf. Daher fordern wir einen Spring-Boot-Start auf einem anderen Port an, indem wir in der Datei application.properties "server.port = 8090" hinzufügen.
Siehe diesen Link - Ссылка
Es gibt zwei Möglichkeiten, um dieses Problem zu lösen.Wählen Sie zunächst Option 1, wenn es nicht funktioniert, versuchen Sie Option 2, und Ihr Problem ist gelöst.
1) In der oberen rechten Ecke Ihrer Konsole befindet sich eine rote Taste, mit der Sie die Spring Boot-Anwendung stoppen können, die bereits auf diesem Port läuft. Klicken Sie einfach auf die rote Schaltfläche, um zu beenden.
2) Wenn der rote Knopf nicht aktiviert ist, müssen Sie mit der rechten Maustaste auf die Konsole klicken und alle beenden / trennen. Hoffe, das hilft.
Bonus-Tipp: - Wenn Sie Ihren Server auf einem anderen Port Ihrer Wahl betreiben wollen, erstellen Sie eine Datei mit dem Namen application.properties im Ressourcenordner Ihres Maven-Projekts und schreiben Sie server.port = 3000, um Ihre Anwendung auf Port 3000 auszuführen
Tue ich hier etwas falsch?
Ja, das bist du. Starten Sie den Server entweder neu (wenn in STS dafür eine Schaltfläche vorhanden ist) oder stoppen Sie ihn und starten Sie ihn. Ein Servlet-Container wird bereits auf Port 8080 ausgeführt, und Sie versuchen, erneut einen Port auf Port 8080 auszuführen.
Öffnen Sie "localhost: 8080" in Ihrem Browser und sehen Sie, was an diesem Port läuft.
Ich habe es getan und ich habe gerade Oracle 10g XE im Hintergrund laufen, also ging ich zu Start-Services und stoppte alle Orakel-Dienste. Dann wiederhole ich mvnw spring-boot:run
auf IntelliJ und es läuft wie Magie.
Für Mac-Benutzer (OS X El Capitan): Sie müssen den Port beenden, auf dem localhost: 8080 läuft. Dazu müssen Sie zwei Befehle im Terminal ausführen.
sudo lsof -i tcp: 8080
kill -15 PID
Achtung! PID IST EINE NUMMER, DIE DURCH DEN ERSTEN BEFEHL ZUR VERFÜGUNG GESTELLT WIRD.
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 Prozess auf localhost: 8080 zu beenden.
hi Erstellen einer einfachen Zeile in application.properties als SERVER_PORT = 8090 löste das Problem.
Tags und Links java spring tomcat spring-mvc spring-boot