使用 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服务器调试

Myeclipse中maven工程使用jetty插件启动jetty服务器调试

如何用jetty maven插件运行web项目

Jetty 插件如何为 Maven 工作?

Maven 的 jetty 插件 SSL 配置问题