1. 程式人生 > >免安裝版tomcat6.0的配置

免安裝版tomcat6.0的配置

Tomcat 是一款優秀的JSP/Servlet容器,最初由SUN開發,後來被貢獻給了Apache社群。Tomcat現在的版本已到6。Tomcat6實現了 Servlet2.5和JSP2.1規範。針對web開發和web服務,提供了更多的新功能。本文使用的版本為Tomcat6.0.14,要求的JDK版本至少為1.5。Tomcat不同版本間的配置有差異,如果讀者使用的是其他版本,請仔細閱讀Tomat官方文件,或者到網上尋找相關的資料。

     Tomcat有安裝版和解壓縮版兩種版本,安裝版除了提供一個圖形介面的後臺和Windows服務外,其他的和解壓縮版沒有區別。我使用壓縮版。

     第一步,我們需要下載Tomcat,下載地址是http://tomcat.apache.org。下載完成後,解壓縮,我的Tomcat位於C:/Tomcat6下,以下用$TOMCAT表示這個目錄。

第二步,啟動和停止

     $TOMCAT/bin下面是Tomcat用到的指令碼程式,副檔名為.bat是用於windows平臺的批處理檔案,副檔名為.sh的是用於linux或Unix平臺的指令碼。我們通常用到的是startup.bat、shutdown.bat指令碼。我們也可以用catalina.bat start啟動Tomcat,用catalina.bat stop關閉Tomcat,事實上,startup.bat正是catalina.bat start的別名,同理shutdownup.bat 是catalina.bat stop的別名。

     Catalina.bat才是操作Tomcat的核心指令碼,可以通過catalina –help檢視catalina可以使用的引數及其說明。啟動Tomcat後,我們輸入如下網址:http://localhost:8080/,如果看到Tomcat的頁面,證明安裝成功,如果不成功,請檢查是否設定了正確的JAVA_HOME,JDK的版本是否太低。如果還是不成功,可能是埠衝突,下面將會介紹如何修改埠號。

TOMCAT配置

     $TOMCAT/conf下是Tomcat的配置檔案,最重要的配置檔案是Servler.xml。Server.xml可以重新指定,方式是catalina.bat –config,比如指定config.xml取代Servler.xml,命令如下:

     catalina.bat run –config conf/config.xml

     Server.xml中可以配置部署應用需要的所有資訊,從Tomcat5開始,應用配置可以從Server.xml獨立出來,這也是 Tomcat現在所推薦的配置方式,帶來的一個好處,顯而易見,更容易維護了。另一個好處,是在Servler.xml的修改,只能通過重啟Tomcat 才能發生作用,分拆後,修改完成,可以不用重啟Tomcat就發生作用。本文就採用這種配置方式。下面進行詳細的介紹。

     (1) 埠的修改

     Server元素下可以有多個Service,埠就是在Service元素下配置的。Connector元素的配置如下:

Xml程式碼 複製程式碼
  1. <Connnectorport=”8080” protocal=”HTTP/1.1” connectionTimeout=”20000” redirectPort=”8443”/>



     其中protocal制定了該埠偵聽的協議型別,HTTP/1.1表示偵聽的是客戶的HTTP請求,即我們通過瀏覽器訪問需要輸入的埠,當埠號是80的時候,可以不用在瀏覽器位址列輸入埠號,這就是我們訪問很多網站不需要指定埠的原因。有時候protocal沒有指定,這時候預設的是HTTP/1.1。注意這個埠必須是閒置的。

     Service下面可以配置多個埠,用於偵聽不同的協議。

     (2) 虛擬主機

     Service元素下必須有一個Engine元素,Engine有一個名稱,和一個預設的虛擬主機名,形式如下:

Xml程式碼 複製程式碼
  1. <Enginename="Catalina"defaultHost="localhost">


     虛擬主機就配置在Engine元素下。形式如下:

Xml程式碼 複製程式碼
  1. <Hostname="localhost"appBase="webapps"
  2. unpackWARs="true"autoDeploy="true"
  3. xmlValidation="false"xmlNamespaceAware="false">
  4. </
    Host>



     name是虛擬主機的名字,appBase是虛擬主機指向的目錄,Tomcat啟動時,會自動載入appBase下的應用。 unpackWARs表示是否自動解壓縮appBase下已打成WAR包的應用,autoDeploy表示在伺服器執行的時候,將一個應用放入 appBase下,是否自動部署。

Tomcat應用部署

     應用可以配置在Server.xml中,這裡介紹分拆後的配法。

     應用的獨立配置檔案應該配置在路徑$TOMCAT/conf/engineName/hostName/下,其中engineName是應用所在的Engine的名字,對於本例而言是Catalina,hostName是應用所在的虛擬主機的名字,本例為localhost。配置檔案的名字是這樣約定的:如果訪問路徑就在虛擬主機下,那麼名字為ROOT,如:ROOT.xml,其他情況下,檔名就是訪問路徑,不過需要用#替換路徑中的/。本例中訪問路徑為/struts,相應的檔名是struts.xml,內容如下:

Xml程式碼 複製程式碼
  1. <ContextdocBase="C:/WAP/struts"reloadable="true"/>


     其中docBase指定應用所在的目錄,如果是相對目錄,對應的就是虛擬主機下appBase的目錄,也可以是絕對目錄,這個時候應用在什麼地方都可以。reloadable表示是否支援熱部署,比如class更新,如果reloadable為true,應用會重新部署。注意:在分拆後, Context的path屬性將不再起作用,這是Tomcat6和之前的版本不同的地方。

     以上配置完成,我們就可以訪問應用了,訪問地址是http://localhost:8080/struts

     下面介紹資源的配置

    這裡指的主要是資料來源的配置。Tomcat6使用的是DBCP資料來源,它的配置方式如下:

Xml程式碼 複製程式碼
  1. <Resourcename="jdbc/test"auth="Application"type="javax.sql.DataSource"maxActive="100"
  2. maxIdle="30"maxWait="10000"username="sa"password="123456"driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
  3. url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test"/>


     它可以直接配置在Context元素下,這時資料來源就只有他所屬的應用能夠訪問。如果需要所有的應用能夠訪問,可以配置在$TOMCAT/conf/context.xml中,直接配置下根元素下即可。這個檔案在啟動tomcat的時候,所有的應用都會載入。

     如果需要節省資源,共享同一個資料來源,可以配置在Server.xml的GlobalNamingResources節點下,在應用中可以通過別名訪問,提供別名的方式是在應用所在的元素下新增如下的子元素,例:

Xml程式碼 複製程式碼
  1. <ResouceLinkname=”jdbc/test2” global=”jdbc/test” type=”javax.sql.DataSource”/>


     name就是別名,global是在GlobalNamingResources所定義的資源。