web-dev-qa-db-fra.com

Mettre fin à mvn spring-boot: l'exécution n'arrête pas tomcat

Je peux démarrer Spring-Boot avec mvn spring-boot avec succès, la documentation mentionne la possibilité de quitter gracieusement le hit d'application ctrl-c

Terminate batch job (Y/N)? Y

Le processus maven se termine mais Tomcat est toujours en cours d'exécution et je peux toujours accéder à la page Web. Lorsque j'essaie de redémarrer spring-boot, Tomcat ne parvient pas à démarrer car le port est utilisé.

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: 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
ApplicationContext@11ecab7c: 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

Pour continuer, je dois terminer manuellement le processus en cours. Est-ce un bug ou est-ce que je manque quelque chose?

37
szxnyc

Il m’arrive encore à la version 1.1.9 sous Windows 7.

Ainsi, après avoir appuyé sur Ctrl C. Le moyen le plus rapide de supprimer Java en arrière-plan sera. 

Trouver le PID Java

     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.

Je suppose dans l'exemple ci-dessus que vous utilisez le port http 8080

58
Haim Raman

Voici ce que je fais sur Mac:

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

Il trouve le PID en utilisant 8080 et le tue.

20
Nailgun

Edit: Sous Ubuntu, utilisez la commande: 

fuser -k 8080/tcp

pour tuer le processus. J'utilise spring-boot 1.3.0-Build-snapshot et le problème persiste. Mon SO est Ubuntu et le problème survient à partir d’Eclipse ou de la console. La discussion sur cette question est ici . Cela semble être un problème avec les bibliothèques Spring-Boot, du moins en ce qui concerne les bibliothèques Tomcat. Je suis également dans la ligne pour le correctif. Malheureusement, c’est le prix que nous payons pour essayer d’utiliser les technologies de pointe jusqu’à leur maturation. 

4
Digao

Dans IDEA, vous devez arrêter le processus avant réexécuter it à nouveau. Cette commande arrêtera Tomcat intégré. 

2
max_dev

Pour ceux qui utilisent Eclipse, c'est de loin la meilleure réponse:

Ouvrez "run configurations", éditez le lancement maven que vous avez défini pour votre projet et, sous l'onglet "JRE", ajoutez -Dfork = false dans la zone de texte VM des arguments.

_ {Lorsque vous appuierez sur le bouton d'arrêt rouge, le serveur Tomcat s'arrêtera et vos ports seront libérés.

La réponse provient d'un message ici sur Github de jordihs

2
Abu Sulaiman

Je sais que je suis trop tard pour répondre, mais peut-être que quelqu'un obtiendra de l'aide pour cela. Les utilisateurs STS peuvent utiliser le bouton Relaunch plutôt que Run pour s'assurer que toute instance existante est fermée.
Pour référence : 
https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-running-your-application.html

2
K_Bist

Cela ne se produit que sous Windows. https://github.com/spring-projects/spring-boot/issues/773

Mise à jour: devrait être corrigé maintenant.

1
Dave Syer

J'ai eu ce problème lors de l'exécution de l'application de démarrage de printemps de Netbeans 8.1 sur Mac. Le processus Java n'a pas été interrompu lorsque j'ai appuyé sur le bouton carré rouge dans Netbeans. Ainsi, lorsque j'ai relancé l'application, j'obtiens toujours l'option "exception de liaison, adresse déjà utilisée". C'est un bug connu.

La solution consistait à ajouter spring-boot: lancer commande pour lancer les objectifs du projet ...

... et aussi si vous obtenez "Aucun plugin trouvé pour le préfixe 'spring-boot' dans le projet actuel et dans les groupes de plugins", vous devrez peut-être ajouter ceci aux dépendances:

<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
Tomasz Mularczyk

Cette solution a fonctionné pour moi avec Spring Boot v1.x et fonctionne maintenant, avec v2.x:

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

De cette façon, vous pouvez supprimer spécifiquement le processus Java Application de Spring Boot au lieu de supprimer tous les processus Java en même temps. Je suppose que si votre "application" Spring Boot (méthode main contenant la classe) est appelée différemment, vous devez utiliser son nom au lieu de Application.

J'utilise l'extrait de code ci-dessus sur ma machine Windows à l'aide de WSL/Debian. Je n'utilise pas la ligne de commande PowerShell ou Windows. 

0
Alex

Vous pouvez provoquer un arrêt en appelant curl -v -X POST http://127.0.0.1:8091/shutdown, à condition que vous ayez correctement configuré spring-boot.

Pour cela, vous devrez mettre à jour les propriétés de votre application. Ceci est partiellement décrit dans https://stackoverflow.com/a/26563344/58794

mettre à jour application.yml en ajoutant:

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

ou mettre à jour application.properties en ajoutant:

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

Une fois appelé 

$ 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..."}

le conteneur va s'arrêter

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'

mais si vous avez lancé depuis mvn spring-boot:run, vous obtiendrez probablement un:

[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]

Si vous n'avez pas management.security.enabled=false, l'erreur suivante peut s'afficher:

$ 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"}

Si vous n'avez pas endpoints.shutdown.enabled=true, vous verrez:

$ 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"}

Si vous essayez un GET au lieu de POST, cette erreur sera présentée:

$ 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

J'ai rencontré le même problème en exécutant l'application SpringBoot dans Eclipse sur Mac. Je devais manuellement trouver tous les PID utilisant 8080 et les tuer. Mais heureusement, j’ai réalisé que nous pouvions supprimer cette instance de Tomcat directement à partir de la vue "console" d’Eclipse, en appuyant sur le bouton Arrêter (icône du carré rouge) et à exécuter à nouveau l’application de démarrage printanier.

0
Ramz_the_dev

Si vous utilisez NetBeans, vous pouvez arrêter le serveur ou le processus en cliquant sur l'icône représentant une croix dans le coin inférieur droit, où il est indiqué Exécuter (nom du projet) .  enter image description here

0
Tanver Hasan