Jetty 如何仅停止一个应用程序?
Jetty正在运行来自Jetty 如何仅停止一个应用程序?,jetty,Jetty,Jetty正在运行来自webapps的3个站点。其中一个是“静态”角度站点,另一个是巨大的java应用程序 通常,我使用Ctrl+c停止Jetty,在我的角度站点上进行更改,然后使用 java -jar start.jar -DCommon.properties.path=C:\Jetty 如果我试图在Jetty运行时编辑文件,就会注入随机的错误代码,破坏网站 所以这个过程非常乏味。java应用程序需要15-20秒才能加载。因此,如果我忘记了斜杠,需要大约一分钟的时间来关闭它并重新启动它 有没
webapps
的3个站点。其中一个是“静态”角度站点,另一个是巨大的java应用程序
通常,我使用Ctrl+c停止Jetty,在我的角度站点上进行更改,然后使用
java -jar start.jar -DCommon.properties.path=C:\Jetty
如果我试图在Jetty运行时编辑文件,就会注入随机的错误代码,破坏网站
所以这个过程非常乏味。java应用程序需要15-20秒才能加载。因此,如果我忘记了斜杠,需要大约一分钟的时间来关闭它并重新启动它
有没有一种方法可以让我一次只停止/启动一个
webapps
,而不是同时启动所有3个应用程序?您似乎正在使用Windows
您遇到的问题与Microsoft Windows特有的传统上不可靠的文件系统锁定行为有关(没有其他运行Java的操作系统会这样做)
请参阅官方文档,网址为
如果您遵循该文档中列出的建议,则无需停止/启动特定的Web应用程序
重要信息:请注意,文档中的建议仅适用于开发时间,不是生产的良好常规配置
从OP插入: 我按照上面文档中的说明进行操作,结果成功了!以下是我所做的:
- 我的是在C:\Place\u安装了\u Jetty\u\Jetty\etc的地方\
UseFileMappedBuffer
useFileMappedBuffer
真的
错误
也就是说,如果你仍然想走这条路,有两种方法 1。使用热重新加载 为您的“重新加载”Web应用创建一个可部署的XML,然后触摸它以热加载1个Web应用 文件:
${jetty.base}/webapps/myapp.xml
/myapp
myapp.war
然后让jetty重新装载它只是
$ touch /path/to/myjettybase/webapps/myapp.xml
此标准Posix命令将更新该文件的时间戳,Jetty会将其视为“嘿,该文件已更新,我必须重新加载”
2。使用JMX停止/启动特定的Web应用程序
在JMX模块处于活动状态时启动Jetty(--module=JMX
)
启动JMX控制台(JDK附带
jmc
和jconsole
)并连接到正在运行的Jetty实例。找到特定Web应用程序的MBean,并在该特定Web应用程序上使用stop()
和start()
命令。非常感谢。我还有一个快速的问题:是否可以更改webdefault.xml
中的某些内容以允许所有http方法(POST
,PUT
,DELETE
)?这将是一个新问题好的,这里是。谢谢