我有完全相同的问题:Terminating mvn spring-boot:run doesn't stop tomcat
那里的答案说它只发生在Windows上,但事实并非如此 . 我正在使用Intellij在OSX上运行spring boot,当我停止spring boot应用程序时,嵌入式tomcat仍在运行 . 这是来自spring boot教程的简单示例应用程序 . 有解决方案吗
我有完全相同的问题:Terminating mvn spring-boot:run doesn't stop tomcat
那里的答案说它只发生在Windows上,但事实并非如此 . 我正在使用Intellij在OSX上运行spring boot,当我停止spring boot应用程序时,嵌入式tomcat仍在运行 . 这是来自spring boot教程的简单示例应用程序 . 有解决方案吗
5 回答
我遇到了同样的问题,因此我必须检查此页面上的所有解决方案以及相关的解决方案 . 没有人对我有好处 . 这就是我进行小规模研究的原因,看起来捕获的TCP端口出现问题只是因为Gradle和mvn都不了解TCP端口的子操作 .
所以不要杀死进程只需使用命令:
(我希望
mvn
同样存在)此命令正常关闭由Gradle启动的守护程序并释放由Tomcat端口捕获的守护程序 .
我在MAC上的intellij中有完全相同的问题(spring boot 1.1.6.RELEASE) .
我通过使用 spring 启动 Actuator 来解决它,它提供了一个休息终点(Post)来关闭应用程序:
这可以通过命令行调用:例如
curl -X POST localhost:port/shutdown
启用spring boot Actuator 添加以下编译dep:
我创建了一个gradle任务bootStop,它为我运行这个cmd . 你可以在maven中做同样的事情,或者你可以从cmd行(也通过intellij终端)调用它
特别是如果你想使用调试,你应该在gradle / maven任务中包含上面给出的curl cmd .
见工作示例(gradle)here
以下是 spring 启动 Actuator 的maven示例,用于配置HTTP endpoints 以关闭Spring启动Web应用程序:
1.Maven Pom.xml:
2.application.properties:
列出所有 endpoints here:
3.发送一个post方法来关闭app:
在previous回答之后,此属性现在已弃用,因此请将其替换为:
更简单的解决方案是创建“Spring Boot”配置并使用它来启动应用程序而不是“Gradle”配置 . “Spring Boot”配置不会遇到此问题 .