【发布时间】:2012-08-02 21:46:41
【问题描述】:
我在 Jetty 上部署一个 Web 应用程序作为战争。
有没有办法以编程方式重新启动 Jetty 上当前正在运行的应用程序?
有Jetty配置可以实现吗?
【问题讨论】:
-
看看这个 -> docs.codehaus.org/display/JETTY/Embedding%2BJetty,你也许可以做 server.restart();或者其他的东西。没试过
我在 Jetty 上部署一个 Web 应用程序作为战争。
有没有办法以编程方式重新启动 Jetty 上当前正在运行的应用程序?
有Jetty配置可以实现吗?
【问题讨论】:
有 3 个选项。
使用 JMX
通过 jetty-jmx 库和配置尝试 enabling JMX。 然后探索上下文或部署者的选项,看看您是否可以使用 JMX 来管理已部署的上下文
创建您自己的Server bean 来管理上下文的部署/取消部署
创建您自己的 AppProvider,提供给 DeploymentManager,以编程方式控制已安装的上下文。
【讨论】:
这是解决这个问题的尝试:https://github.com/giuliano108/jetty-manager
sudo -u username jetty-manager
Usage:
jetty-manager jvms
jetty-manager webapps <jvm> [ <webappfilter> ]
jetty-manager threads <jvm>
jetty-manager stop <jvm> <webappfilter>
jetty-manager start <jvm> <webappfilter>
jetty-manager restart <jvm> <webappfilter>
jetty-manager (-h | --help)
Commands:
jvms Show the running JVMs (PID, name)
webapps Show the webapps hosted by <jvm> and their state
threads Show the total number of threads in the <jvm>
Arguments:
<jvm> JVM PID or regexp (matched against the JVM name)
<webappfilter> regexp matched against the context path (URL)
Options:
-h --help Show this screen
【讨论】: