wake-up-neo.com

Mvn spring-boot wird abgebrochen: runcat stoppt nicht

Ich kann Spring-Boot erfolgreich mit mvn spring-boot starten, die Dokumentation erwähnt, um die Anwendung ordnungsgemäß zu beenden, ctrl-c

Terminate batch job (Y/N)? Y

Der Maven-Prozess wird zwar beendet, aber Tomcat läuft noch und ich kann immer noch die Webseite aufrufen. Wenn ich versuche, Spring-Boot erneut zu starten, kann Tomcat nicht gestartet werden, da der Port verwendet wird.

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v1.1.0.BUILD-SNAPSHOT)

2014-05-02 12:13:57.666  INFO 6568 --- [           main] Example                                  : Starting Example on challenger with PID 6568 (E:\workspace\SpringBoot\target\cla
sses started by steven in E:\workspace\SpringBoot)
2014-05-02 12:13:57.707  INFO 6568 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWeb
[email protected]: startup date [Fri May 02 12:13:57 EDT 2014]; root of context hierarchy
2014-05-02 12:13:58.097  INFO 6568 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'beanNameViewResolver': replacing [Root bean
: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfi
gure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class pat
h resource [org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; laz
yInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAuto
ConfigurationAdapter; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfig
ure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]]
2014-05-02 12:13:58.682  INFO 6568 --- [           main] .t.TomcatEmbeddedServletContainerFactory : Server initialized with port: 8080
2014-05-02 12:13:58.892  INFO 6568 --- [           main] o.Apache.catalina.core.StandardService   : Starting service Tomcat
2014-05-02 12:13:58.892  INFO 6568 --- [           main] org.Apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/7.0.53
2014-05-02 12:13:58.981  INFO 6568 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2014-05-02 12:13:58.981  INFO 6568 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1277 ms
2014-05-02 12:13:59.453  INFO 6568 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean        : Mapping servlet: 'dispatcherServlet' to [/]
2014-05-02 12:13:59.455  INFO 6568 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2014-05-02 12:13:59.570 ERROR 6568 --- [           main] o.a.coyote.http11.Http11NioProtocol      : Failed to start end point associated with ProtocolHandler ["http-nio-8080"]

Java.net.BindException: Address already in use: bind
        at Sun.nio.ch.Net.bind0(Native Method)
        at Sun.nio.ch.Net.bind(Net.Java:344)
        at Sun.nio.ch.Net.bind(Net.Java:336)
        at Sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.Java:199)
        at Sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.Java:74)
        at org.Apache.Tomcat.util.net.NioEndpoint.bind(NioEndpoint.Java:473)
        at org.Apache.Tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.Java:647)
        at org.Apache.coyote.AbstractProtocol.start(AbstractProtocol.Java:449)
        at org.Apache.catalina.connector.Connector.startInternal(Connector.Java:1007)
        at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
        at org.Apache.catalina.core.StandardService.startInternal(StandardService.Java:459)
        at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
        at org.Apache.catalina.core.StandardServer.startInternal(StandardServer.Java:731)
        at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
        at org.Apache.catalina.startup.Tomcat.start(Tomcat.Java:341)
        at org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.Java:79)
        at org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.Java:69)
        at org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.Java:270)
        at org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.Java:145)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.Java:159)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.Java:132)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:476)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.Java:120)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.Java:680)
        at org.springframework.boot.SpringApplication.run(SpringApplication.Java:313)
        at org.springframework.boot.SpringApplication.run(SpringApplication.Java:941)
        at org.springframework.boot.SpringApplication.run(SpringApplication.Java:930)
        at Example.main(Example.Java:16)

2014-05-02 12:13:59.571 ERROR 6568 --- [           main] o.Apache.catalina.core.StandardService   : Failed to start connector [Connector[org.Apache.coyote.http11.Http11NioProtocol-
8080]]

org.Apache.catalina.LifecycleException: Failed to start component [Connector[org.Apache.coyote.http11.Http11NioProtocol-8080]]
        at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
        at org.Apache.catalina.core.StandardService.startInternal(StandardService.Java:459)
        at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
        at org.Apache.catalina.core.StandardServer.startInternal(StandardServer.Java:731)
        at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
        at org.Apache.catalina.startup.Tomcat.start(Tomcat.Java:341)
        at org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.Java:79)
        at org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.Java:69)
        at org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.Java:270)
        at org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.Java:145)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.Java:159)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.Java:132)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:476)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.Java:120)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.Java:680)
        at org.springframework.boot.SpringApplication.run(SpringApplication.Java:313)
        at org.springframework.boot.SpringApplication.run(SpringApplication.Java:941)
        at org.springframework.boot.SpringApplication.run(SpringApplication.Java:930)
        at Example.main(Example.Java:16)
Caused by: org.Apache.catalina.LifecycleException: service.getName(): "Tomcat";  Protocol handler start failed
        at org.Apache.catalina.connector.Connector.startInternal(Connector.Java:1014)
        at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
        ... 18 common frames omitted
Caused by: Java.net.BindException: Address already in use: bind
        at Sun.nio.ch.Net.bind0(Native Method)
        at Sun.nio.ch.Net.bind(Net.Java:344)
        at Sun.nio.ch.Net.bind(Net.Java:336)
        at Sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.Java:199)
        at Sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.Java:74)
        at org.Apache.Tomcat.util.net.NioEndpoint.bind(NioEndpoint.Java:473)
        at org.Apache.Tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.Java:647)
        at org.Apache.coyote.AbstractProtocol.start(AbstractProtocol.Java:449)
        at org.Apache.catalina.connector.Connector.startInternal(Connector.Java:1007)
        ... 19 common frames omitted

2014-05-02 12:13:59.572  INFO 6568 --- [           main] o.Apache.catalina.core.StandardService   : Stopping service Tomcat
2014-05-02 12:13:59.580  INFO 6568 --- [           main] .b.l.ClasspathLoggingApplicationListener : Application failed to start with classpath: [file:/E:/workspace/SpringBoot/src/m
ain/resources, file:/E:/workspace/SpringBoot/src/main/resources, file:/E:/workspace/SpringBoot/target/classes/, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring
-boot-starter-web/1.1.0.BUILD-SNAPSHOT/spring-boot-starter-web-1.1.0.BUILD-SNAPSHOT.jar, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring-boot-starter/1.1.0.BUI
LD-SNAPSHOT/spring-boot-starter-1.1.0.BUILD-SNAPSHOT.jar, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring-boot/1.1.0.BUILD-SNAPSHOT/spring-boot-1.1.0.BUILD-SNA
PSHOT.jar, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/1.1.0.BUILD-SNAPSHOT/spring-boot-autoconfigure-1.1.0.BUILD-SNAPSHOT.jar, file:/C:
/Users/steven/.m2/repository/org/springframework/boot/spring-boot-starter-logging/1.1.0.BUILD-SNAPSHOT/spring-boot-starter-logging-1.1.0.BUILD-SNAPSHOT.jar, file:/C:/Users/steven/.
m2/repository/org/slf4j/jcl-over-slf4j/1.7.7/jcl-over-slf4j-1.7.7.jar, file:/C:/Users/steven/.m2/repository/org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar, file:/C:/Users/steven/.m2
/repository/org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar, file:/C:/Users/steven/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.7/log4j-over-slf4j-1.7.7.jar, file:/C:/Users/st
even/.m2/repository/ch/qos/logback/logback-classic/1.1.2/logback-classic-1.1.2.jar, file:/C:/Users/steven/.m2/repository/ch/qos/logback/logback-core/1.1.2/logback-core-1.1.2.jar, f
ile:/C:/Users/steven/.m2/repository/org/yaml/snakeyaml/1.13/snakeyaml-1.13.jar, file:/C:/Users/steven/.m2/repository/org/springframework/boot/spring-boot-starter-Tomcat/1.1.0.BUILD
-SNAPSHOT/spring-boot-starter-Tomcat-1.1.0.BUILD-SNAPSHOT.jar, file:/C:/Users/steven/.m2/repository/org/Apache/Tomcat/embed/Tomcat-embed-core/7.0.53/Tomcat-embed-core-7.0.53.jar, f
ile:/C:/Users/steven/.m2/repository/org/Apache/Tomcat/embed/Tomcat-embed-el/7.0.53/Tomcat-embed-el-7.0.53.jar, file:/C:/Users/steven/.m2/repository/org/Apache/Tomcat/embed/Tomcat-e
mbed-logging-juli/7.0.53/Tomcat-embed-logging-juli-7.0.53.jar, file:/C:/Users/steven/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.3.3/jackson-databind-2.3.3.jar, fi
le:/C:/Users/steven/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.3.0/jackson-annotations-2.3.0.jar, file:/C:/Users/steven/.m2/repository/com/fasterxml/jackson/co
re/jackson-core/2.3.3/jackson-core-2.3.3.jar, file:/C:/Users/steven/.m2/repository/org/springframework/spring-web/4.0.3.RELEASE/spring-web-4.0.3.RELEASE.jar, file:/C:/Users/steven/
.m2/repository/org/springframework/spring-aop/4.0.3.RELEASE/spring-aop-4.0.3.RELEASE.jar, file:/C:/Users/steven/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar, file
:/C:/Users/steven/.m2/repository/org/springframework/spring-beans/4.0.3.RELEASE/spring-beans-4.0.3.RELEASE.jar, file:/C:/Users/steven/.m2/repository/org/springframework/spring-cont
ext/4.0.3.RELEASE/spring-context-4.0.3.RELEASE.jar, file:/C:/Users/steven/.m2/repository/org/springframework/spring-core/4.0.3.RELEASE/spring-core-4.0.3.RELEASE.jar, file:/C:/Users
/steven/.m2/repository/org/springframework/spring-webmvc/4.0.3.RELEASE/spring-webmvc-4.0.3.RELEASE.jar, file:/C:/Users/steven/.m2/repository/org/springframework/spring-expression/4
.0.3.RELEASE/spring-expression-4.0.3.RELEASE.jar]
Exception in thread "main" org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedde
d.EmbeddedServletContainerException: Unable to start embedded Tomcat
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.Java:135)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:476)
[INFO] ------------------------------------------------------------------------
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.Java:120)
[INFO] BUILD SUCCESS
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.Java:680)
[INFO] ------------------------------------------------------------------------
        at org.springframework.boot.SpringApplication.run(SpringApplication.Java:313)
[INFO] Total time: 4.653 s
        at org.springframework.boot.SpringApplication.run(SpringApplication.Java:941)
        at org.springframework.boot.SpringApplication.run(SpringApplication.Java:930)
        at Example.main(Example.Java:16)
Caused by: org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat
[INFO] Finished at: 2014-05-02T12:13:59-05:00
        at org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.Java:106)
[INFO] Final Memory: 16M/232M
[INFO] ------------------------------------------------------------------------
        at org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.Java:69)
        at org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.Java:270)
        at org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.Java:145)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.Java:159)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.Java:132)
        ... 7 more
Caused by: Java.lang.IllegalStateException: Tomcat connector in failed state
        at org.springframework.boot.context.embedded.Tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.Java:102)
        ... 12 more

Um fortzufahren, muss ich den laufenden Prozess manuell beenden. Ist das ein Fehler oder fehlt mir etwas?

37
szxnyc

Es passiert mir immer noch unter Version 1.1.9 unter Windows 7.

Nachdem Sie also die Strg-Taste C gedrückt haben, wird der Java-Hintergrund am schnellsten beendet. 

Suchen Sie die Java-PID

     c:\>netstat -ano | find "8080"
     TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       1196
     TCP    [::]:8080              [::]:0                 LISTENING       1196
     c:\>taskkill /F /PID 1196
     SUCCESS: The process with PID 1196 has been terminated.

Ich gehe in dem obigen Beispiel davon aus, dass Sie den HTTP-Port 8080 verwenden

58
Haim Raman

Folgendes mache ich auf dem Mac:

kill `lsof -i -n -P | grep TCP | grep 8080 | tr -s " " "\n" | sed -n 2p`

Es findet die PID mit 8080 und tötet es.

20
Nailgun

Bearbeiten Sie: In Ubuntu den Befehl: 

fuser -k 8080/tcp

den Prozess beenden. Ich benutze Spring-Boot 1.3.0-Build-Snapshot und das Problem bleibt bestehen. Mein SO ist Ubuntu und das Problem tritt entweder von Eclipse oder von der Konsole auf. Die Diskussion zu diesem Thema ist hier . Dies scheint ein Problem bei Spring-Boot-Bibliotheken zu sein, zumindest bei Tomcat-Bibliotheken. Ich bin auch in der Zeile für diesen Fix. Leider ist dies der Preis, den wir für den Versuch zahlen, Spitzentechnologien zu verwenden, bis sie ausgereift sind. 

4
Digao

In IDEA müssen Sie Prozess stoppen vor Run erneut starten. Mit diesem Befehl wird der eingebettete Tomcat heruntergefahren. 

2
max_dev

Für diejenigen, die Eclipse verwenden, ist dies bei weitem die beste Antwort:

Öffnen Sie "Laufkonfigurationen", bearbeiten Sie den Maven-Start, den Sie für Ihr Projekt definiert haben, und fügen Sie auf der Registerkarte "JRE" -Dfork = false zum Textbereich VM hinzu.

Wenn Sie die rote Stopp-Taste drücken, wird der Tomcat-Server angehalten und Ihre Ports werden freigegeben.

Antwort kommt von einem Beitrag hier auf Github von Jordani

2
Abu Sulaiman

Ich weiß, dass ich zu spät komme, um zu antworten, aber vielleicht wird jemand Hilfe bekommen. STS-Benutzer können die Schaltfläche Relaunch anstelle von Run verwenden, um sicherzustellen, dass eine vorhandene Instanz geschlossen wird.
Als Referenz : 
https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-running-your-application.html

2
K_Bist

Das passiert nur in Windows. https://github.com/spring-projects/spring-boot/issues/773

Update: sollte jetzt behoben sein.

1
Dave Syer

Ich hatte dieses Problem beim Ausführen der Spring Boot App von NetBeans 8.1 auf dem Mac. Der Java -Prozess wurde nicht beendet, als ich in Netbeans auf die Schaltfläche mit dem roten Quadrat geklickt habe. Beim Neustart der App erhalte ich immer die Meldung "Ausnahme binden, Adresse wird bereits verwendet". Dies ist ein bekannter Fehler.

Die Lösung war: add spring-boot: run Befehl zum Ausführen der Projektziele ...

... und auch wenn Sie " Kein Plugin gefunden für das Präfix 'spring-boot' im aktuellen Projekt und in den Plugin-Gruppen " benötigen um dies Abhängigkeiten hinzuzufügen:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.5.RELEASE</version>
</parent>

<repositories>
    <repository>
        <id>spring-releases</id>
        <url>https://repo.spring.io/libs-release</url>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>spring-releases</id>
        <url>https://repo.spring.io/libs-release</url>
    </pluginRepository>
</pluginRepositories>
0

Ja, das ist richtig. Wenn Sie eine Maven-Installation mit Spring-Boot-Run ausführen und die Anwendung gestoppt ist, lauscht der Tomcat-Port immer noch.

Ich füge einen Screenshot für diejenigen bei, die mit diesem Problem konfrontiert sind, Port/Adresse bereits in Gebrauch. Bevor Sie die Spring-Boot-Anwendung erneut ausführen, rufen Sie einfach den Windows-Task-Manager auf und beenden Sie den Prozess mit dem Namen "Java (TM) Platform SE binary". Führen Sie Ihre Boot-Anwendung aus. Ihr Port wäre frei von dem Prozess und Sie Das Problem wird nicht mehr angezeigt. (Sie müssen dies nicht tun, nachdem Sie Ihre Anwendung für ausgeführt haben.enter image description here zum ersten Mal) Es hat Wunder für mich gewirkt. Hoffe es hilft Guten Tag

0
Rajiv

Diese Lösung funktionierte für mich mit Spring Boot v1.x und funktioniert jetzt mit v2.x:

hangingJavaProcessToStop=`jps | grep Application | awk '{print $1}'`
echo "hangingJavaProcessToStop: $hangingJavaProcessToStop"
kill -9 $hangingJavaProcessToStop

Auf diese Weise können Sie insbesondere den Application Java-Prozess von Spring Boot beenden, anstatt alle Java-Prozesse auf einmal zu beenden. Ich nehme an, wenn Ihr Spring Boot "Application" (main-Methode, die Klasse enthält) anders aufgerufen wird, müssen Sie seinen Namen statt Application verwenden.

Ich führe das obige Snippet auf meinem Windows - Rechner mit WSL/Debian aus. Ich verwende keine PowerShell- oder Windows-Befehlszeile. 

0
Alex

Sie führen zu einem Herunterfahren, indem Sie curl -v -X POST http://127.0.0.1:8091/shutdown aufrufen, sofern Sie Spring-Boot ordnungsgemäß konfiguriert haben.

Um dies zu unterstützen, müssen Sie Ihre Anwendungseigenschaften aktualisieren. Dies ist teilweise in https://stackoverflow.com/a/26563344/58794 beschrieben. 

aktualisierung von application.yml durch Hinzufügen von:

management:
  security:
    enabled: false
endpoints:
  shutdown:
    enabled: true

oder aktualisieren Sie application.properties, indem Sie Folgendes hinzufügen:

management.security.enabled=false
endpoints.shutdown.enabled=true

Einmal angerufen 

$ curl -v -X POST http://127.0.0.1:8091/shutdown
* STATE: INIT => CONNECT handle 0x600057990; line 1423 (connection #-5000)
* Added connection 0. The cache now contains 1 members
*   Trying 127.0.0.1...
* TCP_NODELAY set
* STATE: CONNECT => WAITCONNECT handle 0x600057990; line 1475 (connection #0)
* Connected to 127.0.0.1 (127.0.0.1) port 8091 (#0)
* STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x600057990; line 1592 (connection #0)
* Marked for [keep alive]: HTTP default
* STATE: SENDPROTOCONNECT => DO handle 0x600057990; line 1610 (connection #0)
> POST /shutdown HTTP/1.1
> Host: 127.0.0.1:8091
> User-Agent: curl/7.56.1
> Accept: */*
>
* STATE: DO => DO_DONE handle 0x600057990; line 1689 (connection #0)
* STATE: DO_DONE => WAITPERFORM handle 0x600057990; line 1814 (connection #0)
* STATE: WAITPERFORM => PERFORM handle 0x600057990; line 1824 (connection #0)
* HTTP 1.1 or later with persistent connection, pipelining supported
< HTTP/1.1 200
< X-Application-Context: application:h2:8091
< Content-Type: application/vnd.spring-boot.actuator.v1+json;charset=UTF-8
< Transfer-Encoding: chunked
< Date: Fri, 22 Dec 2017 07:01:04 GMT
<
* STATE: PERFORM => DONE handle 0x600057990; line 1993 (connection #0)
* multi_done
* Connection #0 to Host 127.0.0.1 left intact
* Expire cleared
{"message":"Shutting down, bye..."}

der Container wird heruntergefahren

o.s.c.support.DefaultLifecycleProcessor  : Stopping beans in phase 0
o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans on shutdown
j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'

wenn Sie jedoch von mvn spring-boot:run gestartet werden, erhalten Sie wahrscheinlich Folgendes:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 35.613 s
[INFO] Finished at: 2017-12-22T02:01:05-05:00
[INFO] Final Memory: 25M/577M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.7.RELEASE:run (default-cli) on project PROJECTNAME: Could not exec Java: Application finished with exit code: 1 -> [Help 1]

Wenn Sie management.security.enabled=false nicht haben, wird möglicherweise der folgende Fehler angezeigt:

$ curl -v -X POST http://127.0.0.1:8091/shutdown
> POST /shutdown HTTP/1.1
> Host: 127.0.0.1:8091
> User-Agent: curl/7.56.1
> Accept: */*
>
< HTTP/1.1 401
< X-Application-Context: application:h2:8091
< Content-Type: application/vnd.spring-boot.actuator.v1+json;charset=UTF-8
< Transfer-Encoding: chunked
< Date: Fri, 22 Dec 2017 06:56:19 GMT
<
{"timestamp":1513925779265,"status":401,"error":"Unauthorized","message":"Full authentication is required to access this resource.","path":"/shutdown"}

Wenn Sie endpoints.shutdown.enabled=true nicht haben, sehen Sie:

$ curl -v -X POST http://127.0.0.1:8091/shutdown
> POST /shutdown HTTP/1.1
> Host: 127.0.0.1:8091
> User-Agent: curl/7.56.1
> Accept: */*
>
< HTTP/1.1 404
< X-Application-Context: application:h2:8091
< Content-Type: application/json;charset=UTF-8
< Transfer-Encoding: chunked
< Date: Fri, 22 Dec 2017 06:58:52 GMT
<
{"timestamp":1513925932345,"status":404,"error":"Not Found","message":"No message available","path":"/shutdown"}

Wenn Sie ein GET anstelle von POST versuchen, wird dieser Fehler angezeigt:

$ curl -v http://127.0.0.1:8091/shutdown
> GET /shutdown HTTP/1.1
> Host: 127.0.0.1:8091
> User-Agent: curl/7.56.1
> Accept: */*
>
< HTTP/1.1 405
< X-Application-Context: application:h2:8091
< Allow: POST
< Content-Type: application/json;charset=UTF-8
< Transfer-Encoding: chunked
< Date: Fri, 22 Dec 2017 06:54:12 GMT
<
{"timestamp":1513925652827,"status":405,"error":"Method Not Allowed","exception":"org.springframework.web.HttpRequestMethodNotSupportedException","message":"Request method 'GET' not supported","path":"/shutdown"}
0
Jason Pyeron

Beim Ausführen der SpringBoot-Anwendung in Eclipse auf dem Mac ist dasselbe Problem aufgetreten. Ich musste manuell alle PIDs finden, die 8080 verwendeten, und sie töten. Zum Glück wurde mir jedoch klar, dass wir die Tomcat-Instanz direkt aus der Eclipse-Ansicht "Konsole" beenden können, indem Sie auf die Schaltfläche Stopp (rotes Quadrat) klicken und die Spring-Boot-Anwendung erneut ausführen.

0
Ramz_the_dev

Wenn Sie NetBeans verwenden, können Sie den Server oder Prozess stoppen, indem Sie auf das Kreuzsymbol in der rechten unteren Ecke klicken und dort Ausführen (Projektname) . auswählen. enter image description here

0
Tanver Hasan