Tomcat 設置虛擬路徑US現金盤平臺搭建的幾種方法及為什麽設置虛擬路徑
設置虛擬路徑的優勢我總結有兩點,當然這只是很普通、很常見的兩點優勢:第一、我們開發一個項目,在未定版之前需要進行無數次的修改,如果部署測試項目的時候直接將項目打成war包放到webapps目錄下,那麽每一次版本變更都需要將新的版本放到webapps目錄下覆蓋原先的版本,這樣對於我們測試項目來說是不是非常麻煩呢?如果建立一個虛擬路徑,直接映射到項目原件,這樣一來在測試階段是不是非常的方便?(當然這點對於使用集成開發環境工具的開發者來說可以忽略大笑);第二、Tomcat是一個服務器,既然是一個服務器是不是就有容量這麽一說呢?雖然這個容量是你說了算,但是再怎麽大是不是也有盤符容量限制?如果將所有的項目都部署到webapps目錄下,當項目比較大而且項目較多的時候是不是需要考慮一下盤符的感受呢?所以使用虛擬路徑也可以為搭載Tomcat服務器的盤符分壓!
如何設置虛擬路徑呢?網上有很多的帖子,但是很多都只提到2-3中方法,其實在Tomcat7的官方文檔中給出了5種設置的方法,下面我們就來看一下其中的4中,因為有一種實在是不常用:
方法1(修改配置文件):這是最最最常見的一種方法
在Tomcat7的安裝目錄下找到conf目錄,在該目錄下有一個server.xml文件,這個文件的任務是配置整個服務器信息。例如修改端口號,添加虛擬主機…… 打開這個文件,找到HOST標簽,
在這個標簽中處插入以下代碼:
<Context path="/yang" docBase="f:\mysite1\xxx.war" debug="0" reloadable="true" crossContext="true" />
說明:
path:指定訪問該 Web 應用的 URL 入口。 docBase:指定 Web 應用的文件路徑,可以給定絕對路徑,也可以給定相對於<Host>的appBase 屬性的相對路徑,如果 Web 應用采用開放目錄結構,則指定 Web 應用的根目錄,如果 Web 應用是個 war 文件,則指定 war 文件的路徑。(指定項目所在地址) reloadable:如果這個屬性設為 true,tomcat 服務器在運行狀態下會監視在WEB-INF/classes 和 WEB-INF/lib 目錄下 class 文件的改動,如果監測到有 class 文件被更新的,服務器會自動重新加載 Web 應用。 crossContext:如果想在應用內調用 ServletContext.getContext()來返回在該虛擬主機上運行的其他 web application 的 request dispatcher,設為 true。在安全性很重要的環境中設為 false,使得 getContext()總是返回 null。缺省值為 false。 Debug:與這個 Engine 關聯的 Logger 記錄的調試信息的詳細程度。數字越大,輸出越詳細。如果沒有指定,缺省為 0。
這個方法一般在設置後都需要重啟服務器才有效(有時候即使設置了reloadable=“true” 也需要重新啟動)
方法2(添加配置文件):推薦使用,不需要重啟服務器
在Tomcat根目錄下的/conf/Catalina/localhost/ 路徑下新建一個filename.xml,並在該xml中編寫語句
<Context docBase="F:\Java\JavaWebWorkspace\news"/>
即可創建虛擬站點,虛擬站點名為filename。註意docbase指向你自己的應用程序目錄,各參數參見方法1中的<Context>標簽的參數(註意此文件名將作為Context中的path屬性值,不管文件裏的path屬性值如何設置也是無效的 )。
如果需要分層虛擬站點,可以將文件名改成a#b#c,訪問分層虛擬站點時用localhost:8080/a/b/c
方法3:
在Tomcat根目錄下的conf目錄context.xml文件中插入
<Context path="/zhang" docBase="f:\mysite1" debug="0" reloadable="true" crossContext="true" />
註意,這個虛擬路徑修改方法會讓所有的站點都能加載,https://localhost:8080/zhang
使用這個之前最好將service.xml中的列表設置打開。
方法4:
在Tomcat根目錄下的路徑/conf/Catalina/localhost/context.xml.default ,在這裏進行配置,這個虛擬路徑修改方法會讓該主機下的所有的站點都能加載,同上。
Tomcat 設置虛擬路徑US現金盤平臺搭建的幾種方法及為什麽設置虛擬路徑