原文:http://my.oschina.net/jfinal/blog/353062
首先明確一下 JFinal 項目是標准的 java web 項目,其部署方式與普通 java web 項目沒有任何差別。Java Web 項目在 Tomcat 下部署有一些不必要的坑需要避免,所以撰寫此文方便大家繞過一些坑,以下部署以 linux 為例,windows 與此類似:
1:創建一個目錄: /var/www
2:為將要部署的項目創建一個目錄, /var/www/my_project
3:將項目打成 war 包, 然后解壓到 /var/www/my_project
4:最終的目錄結構為:/var/www/my_project/WEB-INF,也即 WEB-INF 在項目名稱目錄之下
5:修改 TOMECAT_HOME/conf/ server.xml 文件找到 Host 標記,在其中添加如下子標記:
<Context path="" docBase="/var/www/my_project" reloadable="false" />
6:啟動 tomcat
7、瀏覽器中打開 http://127.0.0.1:8080/(如果配置http端口是8080)
第一個關鍵點:以上配置中項目是部署在了 TOMCAT_HOME/webapps 目錄之外的,這樣做是為了避免 tomcat 加載項目兩次的坑,因為配置文件中如果配置了該項目會被加載一次,而項目在 webapps 下面又會被自動重復加載一次,這個坑會引發一些莫名奇妙的問題,例如:有些項目有定時任務,如果重復加載項目,那么定時任務也會被執行多次。所以記住第一點,永遠不要將項目放在 TOMCAT_HOME/webapps 目錄下面。
第二個關鍵點:以上配置中的 Context 標記的 path 屬性一定要設置為 "" 而不是 "/",否則也會跳入一個坑。 docBase 屬性后面放項目名稱的絕對地址, windows 下則是類似於這樣的值: d:/www/my_project。
簡單說 tomcat 下配置分兩步,一是在 webapps 目外之外建目錄放項目,二是在 Host 標記放入 Context 子標記。
問題:請問一個tomcat下部署多個項目該怎么配置了?
答案:將server.xml 中的 Host 標記復制多份,並列放着,改一下其中的 name 屬性為相應的域名即可,例如將第一個的name屬性改成 name="abc.com" 第二個改成 name="def.com",那么這兩個域名可以分別訪問到不同的兩個項目