Javaweb項目在Tomcat 部署方式的N種方式. 發布於 2 年前 (2018年04月26日) – 1801
- 2020 年 4 月 9 日
- 筆記
1、直接將web項目文件件拷貝到webapps 目錄中
Tomcat的Webapps目錄是Tomcat默認的應用目錄,當伺服器啟動時,會載入所有這個目錄下的應用。
所以很多時候我們可以用War包也好,其實原理就是啟動Tomcat服務時,伺服器會自動解開這個war包,並在這個目錄下生成一個同名的文件夾。也可以直接把編譯好的文件放到Webapps下。
2、在server.xml中指定web項目目錄
這種是我最近用的最多的一個.在tomcat中的conf目錄下的server.xml中<host/>節點中添加:
<Context path="mams" docBase="I:devRepositoryjavaCoreRepositorymams_a5d" debug="0" privileged="true" />
path未訪問這個項目的名字,如:127.0.0.1:8080/mams
docBase 是應用程式的物理路徑
debug 則是設定debug level, 0表示提供最少的資訊,9表示提供最多的資訊
privileged設置為true的時候,才允許Tomcat的Web應用使用容器內的Servlet
reloadable 如果為true,則tomcat會自動檢測應用程式的/WEB-INF/lib 和/WEB-INF/classes目錄的變化,自動裝載新的應用程式,可以在不重起tomcat的情況下改變應用程式,實現熱部署
3、創建一個Context文件 ,不重啟伺服器就可以使用
這種方式是公司用的最多的一種,在伺服器上的普遍這樣部署
其實這種方式類似於第二種的方式
在conf目錄中,新建 Catalina\localhost目錄,在該目錄中新建一個xml文件,名字可以隨意取,
如:mams.xml,然後內容為:
<?xml version='1.0' encoding='utf-8'?> <Context docBase="I:devRepositoryjavaCoreRepositorymams_a5d" debug="0" privileged="true" />
然後然後也是127.0.0.1:8080/mams,這種訪問路徑其實就是這xml文件名字。這樣可以隱藏應用的真實名字。
其實我試過,加上path也是不影響,但是沒有試過xml名字和path名字不同會怎麼樣
<Context path="mams" docBase="I:devRepositoryjavaCoreRepositorymams_a5d" debug="0" privileged="true" />
推薦使用第三種方式,因為不需要修改tomcat默認配置,對tomcat的侵入性也是最小,並且如果想取消部署,直接刪除xml配置文件即可。
4.Tomcat Manager動態部署
這種方式我之前已經寫過,這次就一起把它記錄起來吧。
詳情到:http://199604.com/785 這個頁面看我之前寫的記錄