2014-05-08 88 views
4

我有完全一样的一个同样的问题:Terminating mvn spring-boot:run doesn't stop tomcat春季启动tomcat的终止

答案有说,它只是发生在Windows,但它不是真的。我在使用Intellij的OSX上运行spring boot,当我停止spring引导应用程序时,嵌入式tomcat仍在运行。这是Spring引导教程中的简单示例应用程序。任何解决方案

+1

可能重复[终止mvn spring-boot:运行不会阻止tomcat](http://stackoverflow.com/questions/23432651/terminating-mvn-spring-bootrun-doesnt-stop-tomcat) – Farkie

+0

答案重复也表示这是一个已知的问题,已在1.1.0快照中解决。你尝试过吗? –

+0

我在1.1.4.BUILD-SNAPSHOT,它仍然发生。 –

回答

0

我遇到了同样的问题,作为结果,我必须重新审视这个页面和相关的一个上的所有解决方案。没有人对我有好处。这就是为什么我进行了小范围的研究,看起来捕获的TCP端口出现问题是因为Gradle和mvn都不知道使用TCP端口进行子操作。

所以不是杀人过程只需要使用命令:

$ gradlew –stop 

(我希望同样存在mvn

该命令可正常关闭的摇篮启动的守护程序,并释放被Tomcat端口抓获。

4

我在MAC上的intellij中有完全相同的问题(spring boot 1.1.6.RELEASE)。

我工作围绕它通过使用弹簧启动致动器提供了一个休息的端点(POST)来关闭应用:

localhost:port/shutdown 

这可以通过命令行来调用:例如curl -X POST localhost:port/shutdown

,使弹簧的引导驱动器添加以下编译DEP:

org.springframework.boot:spring-boot-starter-actuator 

我创建了一个任务的gradle其中bootStop不运行这个CMD我。 你可以做同样的行家或 你可以从CMD行调用它(也线槽的IntelliJ终端)

特别是如果你想使用调试,你应该换上面给出的卷曲cmd在一个gradle产出/行家任务。

参见工作示例(gradle这个)here

+0

我只是从命令行而不是IDE使用bootRun任务。所以在我的情况下,我只是运行:'./gradlew bootRun'。当我想停止服务器时,我只需按Ctrl + C – kazuar

+0

即可停止构建脚本,如果您不想要ide的任何调试功能,这可能会很好。如果你想使用它们,你必须通过IDE调用任务,所以我认为我的方法更好。 –

+0

如果我想调试我只是从IDE – kazuar

0

一个简单的解决方案是创建一个“春天启动”配置和使用开始,而不是“摇篮”配置您的应用程序。 “Spring Boot”配置不会遇到此问题。

1

这里是弹簧启动的致动器配置HTTP端点关闭的弹簧引导web应用程序行家例如:

1.Maven的pom.xml:

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

2.application.properties:

#No auth protected 
endpoints.shutdown.sensitive=false 

#Enable shutdown endpoint 
endpoints.shutdown.enabled=true 

所有端点列出here

3.Send POST方法来关闭应用:

curl -X POST localhost:port/shutdown