Tomcat是純用Java寫出來的web伺服器,支援Servlet 與JS P。在使用它之前,你必須先安裝Java執行環境(Java runtime enviornment,JRE)。可以在http://java.sun.com/j2se/ 免費下載適合Windows、Linux與Solaris等作業系統的Java SDK。
Java 2SDK包含了「開發工具」與「執行環境」這兩部份,我建議你你應該安裝完整的J2SDK,因為JRE並不包括編譯器。Sun公司Apache Software Fundation的Tomcat伺服器搭配SDK中的javac編譯器一起發行。
另一個選擇就是使用IBM的Jikes編譯器,它是Open Source軟體,你可在Jike的網頁(http://www10.software.ibm.
com/developerw orks /opensource/ jikes /)取得它。Tomcat可被設定成使用Jikes來取代Sun的javac編譯器,如果你打算嘗試使用Jikes,請參考Tomcat的說明文件。
安裝好JavaSDK之後,在安裝Tomcat之前,必須先確認JAVA_HOME環境變數已經設定到你的JRE(或SDK)的安裝目錄,而且SDK的bin目錄(存放javac的目錄)也必須加進PATH環境變數中。在Windows系統,你可以在【命令提示視窗】中,以下列命令檢查環境變數:
C:\> echo %JAVA_HOME%
C:\jdk1.3.1
若還沒有設定JAVA_HOME變數,在Windows系統可用下列方式設定,並將bi n目錄加入PATH環境變數(此例假設Java SDK的安裝目錄是C:\ jdk1.3.1):
C:\> set JAVA_HOME=C:\jdk1.3.1
C:\> set PATH=%JAVA_HOME%\bin;%PATH%
在Windows 95/98/ME系統中,你可以將上述命令加進C:\AUTOEXEC.BAT檔案中,讓它們永久生效,這樣在每次重新開機後,就會自動設定這些環境變數。若是在Windows NT /2000 系統,你只須在【控制台】→【系統】→【進階】→【環境變數】的視窗中,就可永久性設定環境變數。
如果你使用Linux或其它Uni x平台,確實的環境變數設定命令,是依你所用的shell種類而定。以bash(這是Linux 系統預設的shell)為例,你可以這樣做(假設Java SDK安裝在/usr /local/jdk1.3.1):
[hans@gefion /] export JAVA_HOME=/usr/local/jdk1.3.1
[hans@gefion /] export PATH=$JAVA_HOME/bin:$PATH
[hans@gefion /] echo $PATH
/usr/local/jdk1.3.1/bin:/usr/local/bin:/bin:/usr/bin
安裝Tomcat 伺服器
下載Tomcat 伺服器的可執行檔(binary),或是下載其原始程式檔,然後再自行編譯。如果你的興趣主要是學習JSP,我建議你直接下載binary即可,這已足夠用來開發自已的web 應用程式。如果你是一位Java程式設計師,而且有興趣知道Tomcat是怎麼“變”出來的,你可以下載原始碼一窺究竟。
在下列網址可找到Tomcat server binary 的下載連結:http://jakarta.apache.org/site/binindex.html
仔細觀看這網頁,你會發現有Tomcat有三種建構版本(builds)可供下載:
Release builds (穩定版)
Mil estone builds(測試版)
N ight ly builds(開發版)
Release builds是經過嚴格測試,被証明符合Servlet與JSP規格之穩定版本。
Milestone builds是成為release bui lds之前的測試版本,它們通常包含一些可運作的新功能,但尚未經過完整測試。Nightly builds是「最新」的版本,但可能不太穩定,它們通常是只經過開發者自己測試的版本。除非你要參與Tomcat 的研發工作,否則不應該使用Night ly Builds。
你應該下載最新的Release Build。以Windows 為例,你應該下載jakarta- tomcat -3.2.2.zip(或更新版本),然後使用WinZip或Java SDK所附的jar工具軟體解開它。例如,假設你將下載來的檔案放在C: \Jakarta 目錄下:
C:\Jakarta>jar xvf jakarta-tomcat-3.2.2.zip
created: jakarta-tomcat-3.2.2/
created: jakarta-tomcat-3.2.2/webapps/
extracted: jakarta-tomcat-3.2.2/webapps/admin.war
extracted: jakarta-tomcat-3.2.2/webapps/examples.war
extracted: jakarta-tomcat-3.2.2/webapps/ROOT.war
extracted: jakarta-tomcat-3.2.2/webapps/test.war
...(略)...
如果你使用UNIX/Linux平台,則你應該下載jakarta- tomcat -3.2.2. tar.gz(或更新版本),並放到/usr / local / 目錄下(或任何其它你習慣的目錄,這只是慣例而已,不是硬性規定),然後用GNU tar 解開它:
[hans@gefion /] cd /usr/local
[hans@gefion /usr/local] tar xzvf jakarta-tomcat-3.2.2.tar.gz
jakarta-tomcat-3.2.2/
jakarta-tomcat-3.2.2/webapps/
jakarta-tomcat-3.2.2/webapps/admin.war
jakarta-tomcat-3.2.2/webapps/examples.war
...(略)...
假如你的系統沒有安裝GNU tar,可以改用下列命令:
[hans@gefion /usr/local] gunzip -c jakarta-tomcat-3.2.2.tar.gz | tar xvf -
這會建立一個名為jakar ta- tomcat -3.2.2(或你的J akar ta 版本)的目錄,其下還有子目錄與檔案。如同大部份套裝軟體,在doc 子目錄下會有個Readme 檔,請照辦,確實研讀一下其內容,這檔案通常會記載重大的軟體版本變革,以及相關的安裝步驟,假如你發現本章所述的步驟,無法讓你順利完成安裝,那麼Readme 檔可能就是答案所在。
解開Tomcat後,你還必須設定TOMCAT_HOME環境變數。以Windows來說:
C:\Jakarta> set TOMCAT_HOME=C:\Jakarta\jakarta-tomcat-3.2.2
以UNIX的bash shell來說:
[hans@gefion /usr/local] export TOMCAT_HOME=/usr/local/jakarta-tomcat-3.2.2
在jakarta- tomcat 目錄下【編註】,包含以下子目錄:
bin 存放啟動、停止T omcat 伺服器的scr ipt s。
conf 存放T omcat 的組態檔。
doc 說明如何安裝與啟動Tomcat 的文件。在你啟動伺服器之後,還可以看到其它以網頁形式呈現的文件。
lib 將T omcat 連接其它web 伺服器(像是Apache)的binary 模組。這目錄下的檔案是依平台而定的。
src 所有實作servlet 與JSP 規格的類別與界面之原始程式碼。
webapps Tomcat預設的web appl icat ion存放目錄。
後文一律假設你的安裝目錄是/usr / local / jakarta-tomcat /(UN IX/L in ux)或C: \Jakarta\jakartatomcat\(Windows)。在實務上,你可以像這樣建立symbolic l ink:
[lin@ortpower /usr/local]$ ln -s jakarta-tomcat-3.2.2 jakarta-tomcat
用這方式, 你可以在一個系統上同時保有多個版本的Tomcat, 而不必更改環境變數,要換用其它版本時,用ln命令將jakarta- tomcat 連結到其它版本的安裝目錄即可。
無論你是哪種平台,都可在bin目錄下找到能啟動與停止伺服器的檔案(Windows是.bat檔,Unix是.sh檔)。
Windows 平台
在Windows 平台,是由start up.bat、shutdown.bat 與tomcat.bat 這三個批次檔負責啟動、關閉Tomcat 伺服器。主要負責控制伺服器的是tomcat.bat,不過,你不必自己直接執行它,你應該透過startup.bat 與shutdown.bat 呼叫它。要在一個獨立的視窗中啟動伺服器,必須先切換到bin目錄,然後執行startup.bat:
C:\Jakarta\jakarta-tomcat-3.2.2>cd bin
C:\Jakarta\jakarta-tomcat-3.2.2\bin>startup
這會在同一視窗出現一些訊息,然後啟動另一個新視窗,顯示類似如下的啟動訊息:
2001-05-30 09:25:25 - ContextManager: Adding context Ctx( /examples )
Starting tomcat. Check logs/tomcat.log for error messages 2001-05-30 09:25:25 -
ContextManager: Adding context Ctx( /admin )
2001-05-30 09:25:29 - ContextManager: Adding context Ctx( )
2001-05-30 09:25:30 - ContextManager: Adding context Ctx( /test )
2001-05-30 09:25:32 - PoolTcpConnector: Starting HttpConnectionHandler on 8080
2001-05-30 09:25:32 - PoolTcpConnector: Starting Ajp12ConnectionHandler on 8007
就這樣讓視窗一直開著,這是server process運作的地方。
假如你在Windows 95/98/ME 平台上執行,當你啟動伺服器時, 有可能會見到『Out of Envi ronment s pace』錯誤訊息,這表示預設的環境變數空間不足,要解決這問題,你必須在執行s tar tup.bat 之前,先執行下列命令:
C:\Jakarta\jakarta-tomcat-3.2.2\bin> COMMAND.COM /E:4096 /P
這會將環境變數的空間設定為4096bytes(4KB),這應該就夠了,如果你仍然得到相同的錯誤訊息,請設定更大的值。
對於一些作業環境沒調整好的系統(Windows 95),上述命令可能無法解決問題,如果你真的遇到這種情形,請嘗試下列步驟:
1. 關閉原來的【命令提示字元】視窗,再開啟一個新的視窗。
2. 點選視窗左上角的【MS-DOS】小圖示。
3. 選取【內容】。
4. 點選【記憶體】。
5. 改變【起始環境】的值,將「自動」改成「4096」。
6. 按下【確定】,再重新啟動伺服器。
倘若仍無法啟動伺服器,就有可能是因為其它因素(不是環境變數空間不夠的問題)造成,若遇到這種狀況,你必須仔細看看所出現的錯誤訊息。如果出現錯誤訊息的新視窗在你還沒來得及看清楚之前就消失了,你可以改用這方式來啟動伺服器:
C:\Jakarta\jakarta-tomcat-3.2.2\bin> tomcat run
在Window s N T/2000 系統中,首先要確定的是【命令提示字元】視窗須有足夠的螢幕緩衝區大小,足以容納超過一個畫面的錯誤訊息,以便讓你可以回捲視窗檢視。請打開【命令提示字元】視窗的【內容】(在左上角按滑鼠右鍵),選取【格式設定】,將【螢幕緩衝區大小】的【寬度】與【高度】提高一些。不幸的是,Wi ndows 95/98 的【命令提示字元】視窗無法讓你提高緩衝區空間,也不提供捲軸功能。假如你在這些平台遇到問題,請回頭檢查是否已正確安裝了Java SDK,以及J A V A _ H O M E 與P A T H 環境變數的設定值是否正確。
UNIX 平台
在UN IX /Li nux,控制T om cat 伺服器的三個scripts檔分別是startup. sh、shutdown.sh與tomcat .sh。下列命令可啟動Tomcat伺服器:
[ hans@gefion/usr/local/jakarta-tomcat/bin]./startup.sh. . .(略). . .
Starting tomcat. Check logs/tomcat.log for error messages
2001-05-31 10:50:25 - ContextManager: Adding context Ctx( )
2001-05-31 10:50:25 - ContextManager: Adding context Ctx( /test )
2001-05-31 10:50:28 - PoolTcpConnector: Starting HttpConnectionHandler on 8080
2001-05-31 10:50:28 - PoolTcpConnector: Starting Ajp12ConnectionHandler on 8007
若想在系統開機時同時啟動Tomcat,可將下列命令加入你的/etc/rc.d/ rc. local(或其它等效檔案)【編註】:
export JAVA_HOME=/usr/local/jdk
export TOMCAT_HOME=/usr/local/jakarta-tomcat
$TOMCAT_HOME/bin/startup.sh &
當你第一次啟動伺服器時,在Tomcat的安裝目錄下,會自動建立兩個子目錄:
logs 用來存放伺服器日誌檔。假如伺服器的運作不如預期,請看看這目錄下的檔案,從檔案內容中找出錯誤原因。
work 用來存放JSP container所產生的暫時檔與其它檔案。這目錄同時也是存放JSP網頁所產生的servlet。
測試Tomcat
假設你使用瀏覽器的機器,與安裝Tomcat的機器是同一台, 而且使用預設的Tomcat通訊埠(8080),要測試Tomcat 伺服器是否正常運作,請開啟瀏覽器,並在網址欄輸入下列URL:
http://localhost:8080/
編註這裡是假設你的Java SDK安裝在/usr/local/jdk/目錄下,若你的Java SDK是安裝在它處,請改成實際的安裝目錄。例如,若你在Red Hat Linux系統上安裝jdk-1.3 .1 .i3 86.rpm,其實際安裝目錄是/usr/java/jdk1.3.1/,建議你建立一個symbolic link:ln-s/usr/java /jdk1.3.1/ /usr/ local/ jdk
然後依照作者的建議,將JAVA_HOME設定成/usr/ local/jdk。這樣做的好處,是當你下次安裝其它版本JDK時, 只須改變此symbolic link即可,而又可以保有舊版本,若你改變心意,只須再將它改回來,連環境變數都不必改。
若一切正常,Tomcat 的主網頁會出現在瀏覽器視窗中。現在,你可以玩一玩Tomcat 隨附的servlet 與JSP 範例,確定所有功能都能順利運作。
完成測試之後,可用下列命令關閉伺服器:
C:\Jakarta\jakarta-tomcat-3.2.2\bin>shutdown.bat 或
[hans@gefion /usr/local/jakarta-tomcat/bin] ./shutdown.sh
請務必以上述方式關閉伺服器,不要直接關閉server process 所在的視窗(Windows平台),否則,在伺服器裡運作的程式,將沒有機會“善後”,倘若這些程式會用到一些外部資源,像是資料庫連線、磁碟檔案.. . 等等,不循正常程序關閉伺服器,將有可能導致下次啟動伺服器使用這些外界資源時,發生各種不可遇期的狀況。
在Unix/Li nux 平台:
[hans@gefion /usr/local/JSPBook]# cp -R ora $TOMCAT_HOME/webapps
伺服器中的每個web application,都有各自專用的URI prefix。當你將應用程式安裝到Tomcat的webapps目錄下時,該子目錄的名稱,會自動成為該web application的URI prefix。
每次安裝新的web application之後,你都必須先關閉Tomcat伺服器,然後再重新啟動。完成此動作後,你可以在自己的瀏覽器輸入下列URL:
http: / /localhost :8080/ora/