當前位置:首頁 » 數據倉庫 » jetty安裝後配置文件放在哪個目錄
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

jetty安裝後配置文件放在哪個目錄

發布時間: 2022-12-27 20:39:12

Ⅰ jetty熱部署時,怎麼設置能讓war包自動解壓到webapps目錄下

通過Gradle我們可以很方便的使用內置jetty啟動我們的web程序,在本地進行調試。但是在使用的過程中,我發現了幾個問題,導致本地調試的效率大受影響。

如果使用 gradle jettyRun 啟動jetty伺服器後,項目里的靜態資源(jsp,html,JavaScript文件)都被鎖定了,導致無法實時修改這些靜態資源。

既然無法實時修改這些靜態資源,那意味著我們做一個很小的改動都需要先停止jetty server,然後修改,再重新啟動jetty server,這樣來回浪費很多時間,尤其是涉及前台頁面改動時,每調整一個參數都需要重啟jetty。

由於我以前使用過Maven,在Maven里jetty是可以顯示熱部署的。也就是說如果有靜態文件被改動,那麼jetty可以實時load並展現。那麼在Gradle裡面實現這個應該也不是難事,花了一些時間搞定了。

首先要解決文件被鎖定的問題。
文件被鎖定是由於在使用windows系統時,jetty默認在內存中映射了這些文件,而windows會鎖定內存映射的文件。解決的辦法就是修改jetty的配置,讓其在啟動server時將useFileMappedBuffer標志位設置為false。

設置方法有兩種,一種是修改webdefault.xml文件中的useFileMappdBuffer標志位。webdefault.xml文件是jetty啟動服務的配置文件,其先於項目中的WEB-INF/web.xml文件被載入。 jetty包中默認有這個文件,可以將其提取出來,保存在項目根目錄下,並修改useFileMappedBuffer節點。

<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>
然後在build.gradle加入對此文件的引用。

[jettyRun, jettyRunWar,jettyStop]*.with {
webDefaultXml = file("${rootDir}/webdefault.xml")
}
第二種方法是修改項目中的 WEB-INF/web.xml 文件,在其中加入這個節點。

<servlet>
<!-- Override init parameter to avoid nasty -->
<!-- file locking issue on windows. -->
<servlet-name>default</servlet-name>
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
解決jetty的hot deploy的問題。
這個就比較簡單了,Gradle的jetty插件有兩個屬性,一個是reload屬性,需要設置為automatic。另一個屬性是 scanIntervalSeconds,這是指定jetty掃描文件改變的時間間隔,默認為0,單位是秒。 在build.gradle中加入設置。

jettyRun {
reload ="automatic"
scanIntervalSeconds = 1
}
齊活。接下來運行 gradle jettyRun ,待服務啟動起來以後,如果修改了靜態資源,只需要按 Ctrl + R 刷新頁面即可重新載入資源。

Ⅱ jetty怎麼安裝到eclipse里

工具/原料

eclipse/myeclipse

網路

方法/步驟

  1. 打開eclipse,幫助(help)菜單下的 軟體超市(eclilpse marketplace..)