web-dev-qa-db-ja.com

mvn spring-boot:runを終了してもTomcatは停止しません

mvn spring-bootでスプリングブートを正常に開始できます。 documentation に言及すると、アプリケーションが正常に終了し、ctrl-cがヒットします。

Terminate batch job (Y/N)? Y

Mavenプロセスは終了しますが、Tomcatはまだ実行中であり、Webページにアクセスできます。 spring-bootを再度起動しようとすると、ポートが使用されているためTomcatの起動に失敗します。

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

続行するには、実行中のプロセスを手動で終了する必要があります。これはバグですか、何か不足していますか?

41
szxnyc

Windows 7で実行されているバージョン1.1.9でも、それはまだ起こります。

したがって、Ctrl Cを押した後、バックグラウンドを強制終了する最速の方法Javaになります。

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.

上記の例では、httpポート8080で実行していると仮定しています

Macユーザーの場合:

     $lsof -i :8080
     COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
     Java    SOME_PID user  417u  IPv6 0xa4b3be242c249a27      0t0  TCP *:name (LISTEN)
     kill -9 SOME_PID
71
Haim Raman

Macで行うことは次のとおりです。

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

8080を使用してPIDを見つけて、強制終了します。

22
Nailgun

編集:ubuntuで、次のコマンドを使用します。

fuser -k 8080/tcp

プロセスを強制終了します。 spring-boot 1.3.0-Build-snapshotを使用していますが、問題は解決しません。私のSOはUbuntuであり、Eclipseまたはコンソールから実行中に問題が発生します。この問題に関する議論は here です。これはspring-少なくともTomcatライブラリに関するブートライブラリ、私はこの修正にも賛成です。残念ながら、これは成熟するまで最先端のテクノロジーを使用しようとするために支払う価格です。

5
Digao

In IDEAあなたはプロセスの停止前に実行する必要があります。このコマンドは組み込みTomcatをシャットダウンします。

2
max_dev

Eclipseを使用している場合、これが断然最良の答えです。

「実行構成」を開き、プロジェクトに定義したMaven起動を編集し、「JRE」タブで、=に-Dfork = falseを追加しますVM argumentsテキスト領域。

その後、赤い停止ボタンを押すと、Tomcatサーバーが停止し、ポートが解放されます。

AnswerはjordihsによるGithubの投稿から取得

2
Abu Sulaiman

私は答えるには遅すぎることを知っていますが、これで助けを得る人がいるかもしれません。 STSユーザーは、RelaunchではなくRunボタンを使用して、既存のインスタンスを確実に閉じることができます。
参考のため :
https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-running-your-application.html

2
K_Bist

これはWindowsでのみ発生します。 https://github.com/spring-projects/spring-boot/issues/77

更新:今すぐ修正する必要があります。

1
Dave Syer

Macでnetbeans 8.1からスプリングブートアプリを実行すると、この問題が発生しました。 Javaプロセスはnetbeansの赤い四角ボタンを押したときに終了しなかったため、アプリを再起動すると、常に「バインド例外、すでに使用中のアドレス」というものが表示されます。これは既知のバグです。

解決策は spring-boot:runを追加 プロジェクトの目標を実行するコマンドです...

...また、「現在のプロジェクトおよびプラグイングループでプレフィックス「spring-boot」のプラグインが見つかりません」というメッセージが表示される場合は、これを依存関係に追加するには:

<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

はい、これは正しいです。spring-boot-runを使用してMavenをインストールしても、アプリケーションが停止した後、Tomcatポートは引き続きリッスンします。

この問題のポート/アドレスがすでに使用されている場合、スクリーンショットを添付します。スプリングブートアプリケーションを再度実行する前に、Windowsタスクマネージャーに移動して「Java(TM)Platform SEバイナリ」という名前のプロセスを終了し、ブートアプリケーションを実行してください。再度問題が発生することはありません(アプリケーションを で実行した後、これを行う必要はありません。enter image description here 初めて)それは私のために奇跡を起こしました。良い一日を

0
Rajiv

このソリューションは、Spring Boot v1.xで機能し、v2.xでも機能します:

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

この方法では、すべてのJavaプロセスを一度に強制終了する代わりに、Spring BootのApplication Javaプロセスを強制終了できます。 Spring Bootの「アプリケーション」(クラスを含むmainメソッド)が異なる方法で呼び出される場合、Applicationの代わりにその名前を使用する必要があると思います。

WindowsマシンでWSL/Debianを使用して、上記のスニペットを実行しています。 PowerShellまたはWindowsのコマンドラインを使用していません。

0
Alex

スプリングブートを適切に構成した場合は、curl -v -X POST http://127.0.0.1:8091/shutdownを呼び出すことでシャットダウンを引き起こします。

これをサポートするには、アプリケーションのプロパティを更新する必要があります。これは https://stackoverflow.com/a/26563344/58794 で部分的に説明されています。

以下を追加してapplication.ymlを更新します:

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

または以下を追加してapplication.propertiesを更新します。

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

一度呼ばれた

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

コンテナはシャットダウンします

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'

ただし、mvn spring-boot:runから起動した場合は、次のようになります:

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

management.security.enabled=falseがない場合、次のエラーが表示される場合があります。

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

endpoints.shutdown.enabled=trueがない場合は、次のように表示されます:

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

POSTではなくGETを試みると、このエラーが表示されます。

$ 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

Mac上のEclipseでSpringBootアプリケーションを実行しているときに同じ問題が発生しました。 8080を使用してすべてのPIDを手動で見つけて、それらを殺す必要がありました。しかし、幸いにも、停止(赤い四角のアイコン)ボタンを押すことで、Eclipseの「コンソール」ビューからそのTomcatインスタンスを強制終了し、スプリングブートアプリケーションを再度実行できることに気付きました。

0
Ramz_the_dev

NetBeansを使用している場合は、右下隅の「実行(プロジェクト名)」と表示されている十字アイコンをクリックして、サーバーまたはプロセスを停止できます。 enter image description here

0
Tanver Hasan