您似乎正在使用Windows。
您遇到的問題,涉及到傳統靠不住的文件系統鎖定行爲所獨有的Microsoft Windows
在 https://www.eclipse.org/jetty/documentation/current/troubleshooting-locked-files-on-windows.html
如果查看它的官方文件(在運行Java的做到這一點沒有其他的OS)您遵循該文檔中提出的建議,那麼您不需要停止/啓動特定的Web應用程序。
重要:請注意,文檔中的建議是在開發時參考,不用於生產一個很好的通用配置。
從OP插入:
我跟着上面的文檔的方向,和它的工作!以下是我所做的:
找到您的webdefault.xml文件。
- 我的是在C:\ Place_where_Jetty_was_installed \碼頭\等\
打開它,然後搜索UseFileMappedBuffer
找到這個: <init-param> <param-name>useFileMappedBuffer</param-name> <param-value>true</param-value> </init-param>
- 設置PARAM-值假
<param-value>false</param-value>
話雖這麼說,如果你還願意走這條路,有2種方式...
1。使用hotreload
爲您的「重新加載」Web應用程序創建一個可部署的XML,並且touch
它將熱重新加載該Web應用程序。
文件:${jetty.base}/webapps/myapp.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
"http://www.eclipse.org/jetty/configure_9_3.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/myapp</Set>
<Set name="war"><Property name="jetty.webapps"/>myapp.war</Set>
</Configure>
然後使碼頭重載只是......
$ touch /path/to/myjettybase/webapps/myapp.xml
此標準的POSIX命令將更新文件的時間戳,將由碼頭可以看到作爲「嘿,該文件更新,我必須重新加載它」
2.使用JMX停止/啓動特定的web應用程序
啓動JMX模塊處於活動狀態的Jetty(--module=jmx
)。
啓動JMX控制檯(JDK附帶jmc
和jconsole
)並連接到正在運行的Jetty實例。找到適合您特定webapp的MBean,並在該特定webapp上使用stop()
和start()
命令。
非常感謝。我還有一個簡單的問題:是否可以在'webdefault.xml'中改變一些東西來允許所有的http方法('POST','PUT','DELETE')? –
這將是一個新問題 –
好的,在這裏。謝謝! https://stackoverflow.com/questions/44979617/is-there-a-way-to-unlock-all-http-methods-without-changing-the-war-file –