使用 jetty maven 插件优雅关闭 Java 服务
Posted
技术标签:
【中文标题】使用 jetty maven 插件优雅关闭 Java 服务【英文标题】:Graceful Shutdown of Java service with jetty mvn plugin 【发布时间】:2017-09-17 13:38:19 【问题描述】:我正在使用 Jetty-maven-plugin 版本 9.3.12.v20160915 在 Jetty 服务器上运行基于 Rest 的 Java 服务。
我希望能够正常关闭我的服务,即 Java 服务中所有正在运行的线程都必须抛出 Java InterruptedException。考虑到上述情况,我已经编写了我的代码。
当我尝试使用 mvn jetty:stop 时,它会停止我的服务,但不会正常关闭。所有线程都被立即杀死(没有进行清理,我希望它在 finally 代码块中执行,以防 jetty:stop 命令抛出 InterruptedException)。
有没有办法使用jetty mvn插件实现优雅关机?
【问题讨论】:
【参考方案1】:正常关闭是 jetty-distribution 的 start.jar
(启动并监控它)和服务器生命周期(执行任务)的一个功能。
正常关机是生产级功能。
您不应使用 jetty-maven-plugin
运行 Jetty 的生产实例。
jetty-maven-plugin
仅用于开发时间,任何其他用途都存在安全隐患。
【讨论】:
我尝试查看它,但仍然找不到使用 jetty-distribution 的 start.jar 实现优雅关闭应用程序的机制。你能帮忙吗?请注意,如果请求正常关闭,我想编写代码以将 InterruptedException(或任何其他此类)抛出到我的代码中。以上是关于使用 jetty maven 插件优雅关闭 Java 服务的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot Maven 插件 - spring-boot:run 和优雅关闭
Myeclipse中maven工程使用jetty插件启动jetty服务器调试