古詩詞大全網 - 字典詞典 - Jetty9 使用

Jetty9 使用

Jetty比較簡單,和Tomcat大致相同,本文主要描述jetty9以上版本的使用,jetty9版本對jetty的目錄結構和使用都有了壹些明顯的改動。

Jetty較於Tomcat屬於輕量級,而且在處理高並發細粒度請求的場景下顯得更快速高效。所以使其也擁有眾多使用場景,合適的選擇應該為:雲平臺本身的門戶網站放在Tomcat內,而雲臺托管的Java Web應該是部署在Jetty內的。

bin目錄是存放在Unix系統下運行的shell腳本的;

etc存放的都是jetty的配置文件;

modules是存放著各個模塊的,以.mod結尾,點進去可以看到有眾多模塊,不過大多數是沒有激活的,像logs,webapps這種模塊就是默認激活的。

webapps和Tomcat壹樣,用於存放項目的;

可以看到截圖中是有個work目錄的,正常情況下,解壓jetty是沒有這個目錄的,因為當在webapps中存放項目時,通過在根目錄下面運行java -jar start.jar命令,啟動jetty,由於jetty本身所在的目錄和運行的項目的路徑是分開的,這方便於丹jetty升級的時候,並不影響運行的項目,所以例如在webapps下放置壹個war包,運行jetty,該war包解壓出來的項目是存在於系統的temp的目錄下面的,在jetty的目錄中並不能找到,不過當創建壹個work文件夾的時候,解壓出來的項目就會默認的存放在work文件夾內了。

裏面的配置文件編寫為:

這是最基礎的配置,同tomcat的server.xml類似,不過jetty可以配置更多。

默認情況下,jetty會對根目錄(也可以配置jetty.base)下webapps/目錄下的內容實現自動部署,部署的規則如下:

隱藏文件(.開頭)和.d結尾的目錄被忽略;

CVS目錄如”CVS”和”CVSROOT”被忽略;

任何war包都會被自動部署;

任何xml描述文件被認為是可部署的;

任何目錄都被認為是可部署的;

同名的war包和目錄同時存在,目錄不被部署,僅war包部署,且認為war包引用該目錄;

同名的war包和xml文件同時存在,war包不被部署,僅xml文件描述符被部署,且認為該xml文件引用該war包;

同名的目錄和xml文件同時存在,目錄不被部署,xml文件被部署,且認為xml文件引用該目錄;

關於更詳細的說明,請參考官方文檔的這裏。我主要提醒的是:在webapps目錄中,如果存在同名的目錄、war包和xml文件,它們會被當做同壹個工程,部署的優先級是xml文件>war包>目錄。壹定要註意同名,如果不同名,在webapps下存在壹個war包,同時存在壹個引用該war包的xml文件,則會導致重復部署,這就是我跳的坑。

部署時,推薦的做法是,將xml描述文件放到自動部署的webapps目錄下,裏面定義war包的路徑、上下文路徑、是否解壓、臨時目錄、日誌文件等,然後將war包放在自定義的固定目錄下,項目更新,只需要備份和替換war包,重啟jetty即可。

以上轉自: /weixin_38978094/article/details/87917711

demo-base目錄為單獨項目的壹個實例,該目錄就是運行某個項目的jetty_base,其可以在服務器的任何位置。

目錄結構:

修改訪問的context-path在webapps對應的xml中,修改端口號在start.d/http.ini中。

啟動該項目:java -jar ${JETTY_HOME}/start.jar

啟動時候也可以指定jetty_base:java -jar ${JETTY_HOME}/start.jar jetty.base=...