在tomcat安裝好后,只要把你的web項目copy到%TOMCAT_HOME%webapp下面就可以是使用啦!!其實還有種方法就是設定虛擬目錄,即把項目的目錄映射到tomcat中。這樣做即可以不用重復的部署,節約時間,而且給開發人員帶來方便。
方法如下:
1,找到%TOMCAT_HOME%\conf\Catalina\localhost,Catalina\localhost目錄如果存在就手動創建一個,在目錄下創建一個xml文件,文件名稱不能隨意定義,如果你定義為test,那么訪問路徑就是http://localhost:8080/test/....
<Context reloadable="true" debug="0" docBase="E:\workspace\test\bin" workDir="E:\workspace\test\work" crossContext="true" >
</Context>
不需要配置path
docBase是實際路徑,這里一般寫一個絕對的磁盤路徑,當然也可以寫相 對路徑,相對路徑是相對於tomcat安裝目錄的webapps目錄的,通常設置虛擬目錄的目的是將tomcat的安裝和項目的保存分開,所以這里建議你 使用磁盤絕對路徑,並且這個磁盤路徑不時在tomcat安裝目錄下。workDir是tomcat運行是對JSP文件做編譯后的文件,這個文件最好也是分開。
docBase是項目文件夾的WebRoot這一層目錄 ,如:
D:\workspace\project\releasedir\FinanceStock
workDir是指Tomcat解析Jsp轉換為Java文件,並編譯為class存放的文件夾,設置在項目文件夾里面,可以避免移植到其他地方首次讀取jsp文件需要重新解析
tomcat 6 不需要設置debug="0"屬性,否則有下面的警告:
Setting property 'debug' to '0' did not find a matching property
今天做了個測試,感覺只有當docbase位於tomcat安裝目錄之下才能夠正常啟動
2,如果在測試中出現404的錯誤,如果前面配置沒有錯,可能就是在%TOMCAT_HOME%\conf\web.xml文件中把虛擬路徑顯示目錄給禁止啦,此時可以在web.xml文件中找到
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
將listings的value改為true,然后重新啟動tomcat,在輸入url,測試成功!
3,如果項目開發完成,准備部署在服務器上時,記住要把第三步中web.xml文件中參數listings的值改為false,這樣可以避免把項目的部署路徑呈現給使用者!
具體如下:
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
4、訪問多台機器文件問題:
文件太多的時候必然需要跨目錄或跨盤,這個時候就需要用到虛擬目錄,但是Tomcat 不能直接跨Context 進行Forward。
例如:
用 Context 配置映射了虛擬目錄 data1, 目錄下有文件 123.txt
如果要在 / 下直接 forward 到 "/data1/123.txt" 是不行的,會提示 404 找不到文件。
那么就需要靈活應用Tomcat 虛擬目錄映射:
在 D:\Tomcat\conf\Catalina\test 目錄下(test為Server.xml配置文件中的域名) 增加 一個 xml 文件,(test要創建),創建之后加上這個樣一個XML文件(這里就取名為data1.xml):
<Context docBase="\\IP\data1" reloadable="false" crossContext="true" />
並且修改 Server.xml 中的 Context 允許 crossContext="true"。
那么就可以在工程中訪問另外台機器上的文件(當然這個台機器需要共享訪問的文件)。例如:
<img src="/data1/001/002/003.png">,來顯示圖片。
問題又來了,就是權限問題,共享的文件不想給任何人訪問的話,就需要設置共享權限,那么就需要配置tomcat的權限:
1、在共享的機器上設置tomcat帳戶和密碼,並加入共享權限。
2、然后在放tomcat的服務器上,設置相同的tomcat帳戶和密碼。
3、在tomcat服務上配置登錄賬號和密碼。