Tomcat設置虛擬目錄的方法, 不修改server.xm


所在小組使用的就是這樣的形式開發,這樣切換開發環境,測試環境,正式環境就只需要修改project.xml文件就行了。project.xml命名是隨意的,訪問的時候就使用這個名字來訪問。

在tomcat文件夾的  conf\catalina\localhost增加project .xml文件
文件內容:
<Context path="/project" reloadable="true" docBase="E:\javastudio\oob" workDir="E:\javastudio\oob\work" />
  • docBase是項目文件夾的web-inf文件夾的上一層目錄
  • workDir是指Tomcat解析Jsp轉換為Java文件,並編譯為class存放的文件夾,設置 在項目文件夾里面,可以避免移植到其他地方首次讀取jsp文件需要重新解析 。一般格式:項目文件夾\work
  • reloadable是指可以重新加載,一般設置為true,方便使用,不需要經常重啟Tomcat。
以后啟動Tomcat,在瀏覽器輸入  http://localhost:8080/project就能訪問該項目的welcome文件。
 
***************
為什么要不修改server.xml呢?在Tomcat6的doc幫助文檔中,官方是不提倡修改 server.xml來添加虛擬目錄的!
       而我認為,以上使用的方法,非常方便於項目的移植,移植后,只有修改docBase和workDir的值就行了,甚至可以去掉workDir這個屬性!
 

***************

 

又發現了一篇不錯的文章

轉自:http://blog.csdn.net/yiluoak_47/article/details/12503737

 

 

首先,我們要知道虛擬目錄的好處。虛擬目錄不同於原始的Tomcat運行方式,原始的方式是把項目拷貝到webapps下,然后啟動tomcat,就可以訪問webapps下的項目。我們使用eclipse配置tomcat,實際上的原理也是這種方式。

但這種方式的弊端在於,webapps下的項目不是最新的動態,一旦我們修改了eclipse工作目錄下的項目,並不能立刻的反應到 tomcat/webapps下。所以我們不得不編譯項目后,清除webapps下的緩存,甚至要移除項目,然后在放進去。這樣來回折騰,大大降低了工作 效率。我們只要改動一個小地方,就要重復的進行一次上面的工作。

聰明的人,總是懶惰的。我們想到能不能改變一下當前的方式,有一種更好的方式呢?這時候,虛擬目錄就浮現出來。

虛擬目錄的作用是把Web的發布目錄直接定位到eclipse工作目錄下,實現實時更新,實時使用。

 

要配置虛擬目錄,我們需要在Tomcat/conf/catalina/localhost下根據項目命名“項目名.xml”,里面的內容:

<?xml version="1.0" encoding="UTF-8"?> <Context path="/cecb2b" docBase="E:\workspace\cecb2b\webContent" workDir="E:\workspace\cecb2b\word" reloadable="true" debug="1"></Context>

 

屬性解釋:

  path:網絡訪問名

  docBase:項目實際路徑

  wordDir:指定jsp轉換為java的存放目錄。這樣配置,免得移植的時候重新編譯jsp

  reloadable:指定當class文件變化的時候,是否重新加載

  debug:是否是調試模式

 

這樣,Web發布目錄就直接指向了eclipse工作目錄下的項目。我們在eclipse下修改代碼,只要一構建,tomcat自動重新加載。我們就不用來回移除項目了。

 

最后,我們還可以修改cong/web.xml中的:

        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>

把false改為true。

 

 最后,我們需要注意的是,用eclipse創建Web項目,一定要是動態Web項目,然后在修改項目的一些屬性:

1、去掉Project--Build Automatically(自動構建)

2、屬性--Builders--除了Java Builder全部勾去(這樣項目構建速度大大加快)。

3、屬性--Java Build Path--Source--項目名/WebContent/WEB-INF/classes

 

 注意,tomcat7.0和以往不同:

<Context path="/vsearch" docBase="E:/workspace/vsearch2012/WebContent" reloadable="true" debug="5" crossContext="true" /> 

需要注意,xml文件名必須和path的名相同!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM