- Servlet/JSP深入詳解
- 孫鑫
- 4313字
- 2019-01-01 14:48:26
1.5 Tomcat的安裝與配置
安裝Tomcat之前要先安裝JDK,本書中,筆者所用的JDK版本為1.6.0_05。
JDK的下載地址是:http://java.sun.com/javase/downloads/?intcmp=1281,下載頁面如圖1-5所示。

圖1-5 JDK的下載頁面
要下載Tomcat,首先訪問Tomcat項目的網(wǎng)址:http://tomcat.apache.org/,如圖1-6所示。

圖1-6 Tomcat項目的首頁
在頁面左邊的下載鏈接中選擇要下載的Tomcat版本,在這里,我們選擇“Tomcat 6.x”下載,單擊這個鏈接,進入Tomcat 6.x的下載頁面,如圖1-7所示。

圖1-7 Tomcat 6.x的下載頁面
本書使用的Tomcat版本是6.0.16。對于Windows操作系統(tǒng),Tomcat還提供了可執(zhí)行的安裝程序的下載,即“Windows Service Installer”鏈接。通過安裝程序安裝Tomcat,將把Tomcat安裝為Windows的服務。
筆者建議讀者下載zip壓縮包,通過解壓縮的方式來安裝Tomcat,因為解壓縮的方式也適用于其他的操作系統(tǒng)(如Linux系統(tǒng)),并且更容易與其他的開發(fā)環(huán)境集成。對于初學者來說,也能更好地學習Tomcat的啟動過程。
單擊“zip”鏈接,下載apache-tomcat-6.0.16.zip。使用WinZip或WinRAR等解壓縮工具將apache-tomcat-6.0.16.zip解壓縮到指定的驅動器和目錄中。筆者是在D:\OpenSource目錄下直接解壓,產(chǎn)生了目錄apache-tomcat-6.0.16,解壓后的文件夾和文件存放于D:\OpenSource\apache-tomcat-6.0.16目錄下。
Tomcat 6.x需要的J2SE版本最低為5.0。Tomcat 6.x不再需要JDK的支持,只需要安裝JRE就可以了,這是因為Tomcat 6.x使用Eclipse JDT Java編譯器來編譯JSP頁面,而不再使用JDK中的編譯器。Eclipse JDT Java編譯器已經(jīng)綁定到Tomcat的發(fā)行版中。如果你使用Tomcat 5.0.x或者Tomcat 5.5.x,那么仍然需要安裝JDK。
1.5.1 Tomcat的目錄結構
Tomcat安裝后的目錄層次結構如圖1-8所示。

圖1-8 Tomcat 6.0.16目錄層次結構
各目錄的用途如表1-1所示。
表1-1 Tomcat的目錄結構及其用途

從表1-1中可以看到,lib目錄下存放的JAR文件可以被所有的Web應用程序所訪問,如果多個Web應用程序需要訪問相同的JAR文件,那么可以將這些JAR文件放到Tomcat的lib目錄下。此外,對于后面將要介紹的Java Web應用程序,在它的WEB-INF目錄下,也可以建立lib子目錄,在lib子目錄下可以存放各種JAR文件,這些JAR文件只能被當前Web應用程序所訪問。
Tomcat 6.x修改了5.x版本的目錄結構,刪除了common、server和shared目錄,將common/lib、server/lib和shared/lib中的JAR文件統(tǒng)一放到了lib目錄下。
1.5.2 運行Tomcat
在Tomcat安裝目錄下的bin子目錄中,有一些批處理文件(以.bat作為后綴名的文件),其中的startup.bat就是啟動Tomcat的腳本文件,用鼠標雙擊這個文件,你將看到一個窗口一閃而過,之后就什么也沒有了,這說明Tomcat的啟動出錯了。
單擊Windows的【開始】菜單,選擇【所有程序】→【附件】→【命令提示符】,打開“命令提示符”窗口,進入Tomcat的bin目錄中,在“命令提示符”窗口中輸入startup,你將看到如圖1-9所示的畫面。

圖1-9 運行Tomcat提示出錯信息
筆者以前碰到過很多學員,在初次運行Tomcat時,看到如圖1-9所示的信息就不知所措了。有的學員以前還配置過Tomcat,但是再次使用的時候,由于忘記了上次是如何配置的,同樣感覺無從下手。
我們在學習軟件開發(fā)時,一定要養(yǎng)成查看錯誤提示信息,進而根據(jù)錯誤提示解決問題的良好習慣。筆者第一次配置Tomcat時,就是根據(jù)錯誤提示信息一步一步配置成功的。當看到錯誤信息時,首先不要慌張和無所適從,要仔細看清楚錯誤提示,弄明白錯誤的原因。
圖1-9中的錯誤提示信息,已經(jīng)很明確地告訴你了錯誤的原因。我們看圖1-9中的錯誤信息,如下所示:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program
這個錯誤信息是告訴你要配置JAVA_HOME或者JRE_HOME環(huán)境變量,以便Tomcat能夠找到JDK或JRE的安裝目錄。從環(huán)境變量的名字,我們可以猜測到JAVA_HOME是配置JDK的安裝目錄,JRE_HOME是配置JRE的安裝目錄。
由于Tomcat 6.x不再需要JDK的支持,所以才新增了JRE_HOME環(huán)境變量,對于6.0之前的Tomcat版本,沒有JRE_HOME環(huán)境變量,只能配置JAVA_HOME環(huán)境變量。
下面,我們在Windows XP Service Pack 2操作系統(tǒng)下設置JAVA_HOME環(huán)境變量,步驟如下。
① 右鍵單擊“我的電腦”,選擇【屬性】,出現(xiàn)如圖1-10所示的畫面。

圖1-10 “我的電腦”屬性
② 單擊“高級”選項卡,選擇“環(huán)境變量(N)”,如圖1-11和圖1-12所示。

圖1-11 “高級”選項卡

圖1-12 “環(huán)境變量”對話框
③ 在“系統(tǒng)變量”下方單擊“新建”按鈕。在“變量名”中輸入“JAVA_HOME”,在變量值中輸入JDK所在的目錄“D:\Java\jdk1.6.0_05”(讀者可以根據(jù)自己機器上JDK的安裝目錄來修改這個值),然后單擊“確定”按鈕,如圖1-13所示。

圖1-13 新建JAVA_HOME系統(tǒng)變量
④ 最后在“環(huán)境變量”對話框上單擊“確定”按鈕,結束JAVA_HOME環(huán)境變量的設置。
我們再一次轉到Tomcat的bin目錄下,用鼠標雙擊startup.bat文件,可以看到如圖1-14所示的啟動信息。

圖1-14 Tomcat啟動信息
注意圖1-14中圓角矩形框中的文本,可以看到啟動的是Tomcat 6.0.16。
然后,打開瀏覽器,在地址欄中輸入http://localhost:8080/(localhost表示本地機器,8080是Tomcat默認監(jiān)聽的端口號),將出現(xiàn)如圖1-15所示的Tomcat頁面。

圖1-15 Tomcat的默認主頁
注意圖1-15中鼠標(小手形狀)指向的鏈接——“Tomcat Documentation”,單擊這個鏈接將進入Tomcat的文檔頁面,有關Tomcat的幫助信息可以在文檔頁面中找到;讀者也可以直接訪問Tomcat的文檔,文檔首頁的位置是Tomcat安裝目錄下的webapps\docs\index.html。如果要關閉Tomcat服務器,可以用鼠標雙擊Tomcat bin目錄下的shutdown.bat文件。
如果你機器上的Tomcat啟動失敗,有可能是因為TCP的8080端口被其他應用程序所占用,如果你知道是哪一個應用程序占用了8080端口,那么先關閉這個程序。如果你不知道或者不想關閉占用8080端口的應用程序,那么你可以修改Tomcat默認監(jiān)聽的端口號。
前面介紹了,Tomcat安裝目錄下的conf子目錄用于存放Tomcat服務器的各種配置文件,其中的server.xml是Tomcat的主要配置文件,這是一個格式良好的XML文檔,在這個文件中可以修改Tomcat默認監(jiān)聽的端口號。用UltraEdit(你可以用“記事本”程序或其他的文本編輯工具)打開server.xml,找到修改8080端口的地方。讀者也許要問了,“這個配置文件,我都不熟悉,怎么知道在哪里修改端口號呢?”對于初次接觸server.xml的讀者,確實不了解這個文件的結構,但是我們應該有一種開放的思路,既然Tomcat的監(jiān)聽端口號是在server.xml中配置,那么只要我們在這個文件中查找“8080”這樣的數(shù)字字符序列,不就能找到修改端口號的地方了嗎!在UltraEdit中,同時按下鍵盤上的“Ctrl”和“F”鍵,出現(xiàn)如圖1-16所示的“查找”對話框。

圖1-16 UltraEdit的查找對話框
然后在“查找”文本框中輸入“8080”,單擊“下一個”按鈕。重復這一過程,直到找到如圖1-17所示的在server.xml中配置端口號位置。

圖1-17 server.xml中配置端口號的位置
找到后,如果我們不能確定此處就是修改端口號的地方,也沒有關系,可以先嘗試著修改一下端口號,然后啟動Tomcat。如果啟動成功并且能夠在修改后的端口號上訪問到Tomcat的默認主頁,那就證明了我們修改的地方是正確的。學習時,我們應該養(yǎng)成這種探索并不斷實驗的精神。在這里,我們可以修改端口號為8000(讀者可以根據(jù)自己機器的配置選擇一個端口號),然后保存。再次啟動Tomcat,在Tomcat啟動完畢后,打開瀏覽器,在地址欄中輸入http://localhost:8000/(讀者根據(jù)自己設置的端口號做相應的修改),就可以看到Tomcat的默認主頁了。關閉Tomcat服務器時,執(zhí)行bin目錄下的shutdown.bat文件。
如果你想將Tomcat安裝為Windows的服務,以便在Windows系統(tǒng)啟動時即運行Tomcat,那么可以打開“命令提示符”窗口,進入Tomcat安裝目錄下的bin子目錄,然后執(zhí)行下面的命令:
service.bat install
這樣將會在Windows系統(tǒng)中安裝一個Tomcat6服務,要啟動這個服務,可以執(zhí)行下面的命令:
net start Tomcat6
要停止Tomcat6服務,可以執(zhí)行下面的命令:
net stop Tomcat6
要刪除Tomcat6服務,可以執(zhí)行下面的命令:
service.bat remove
要提醒讀者的是:net命令是Windows自帶的命令,而service.bat是Tomcat提供的批處理文件。
1.5.3 Tomcat啟動分析
在本節(jié)中我們將通過對Tomcat啟動過程的分析,來幫助讀者更好地理解和掌握Tomcat。
用文本編輯工具打開用于啟動Tomcat的批處理文件startup.bat,仔細閱讀。在這個文件中,首先判斷CATALINA_HOME環(huán)境變量是否為空,如果為空,就將當前目錄設為CATALINA_HOME的值。接著判斷當前目錄下是否存在bin\catalina.bat,如果文件不存在,將當前目錄的父目錄設為CATALINA_HOME的值。根據(jù)筆者機器上Tomcat安裝目錄的層次結構,最后CATALINA_HOME的值被設為Tomcat的安裝目錄。如果環(huán)境變量CATALINA_HOME已經(jīng)存在,則通過這個環(huán)境變量調(diào)用bin目錄下的“catalina.bat start”命令。通過這段分析,我們了解到兩個信息,一是Tomcat啟動時,需要查找CATALINA_HOME這個環(huán)境變量,如果在Tomcat的bin目錄下調(diào)用startup.bat,Tomcat會自動并正確設置CATALINA_HOME;二是執(zhí)行startup.bat命令,實際上執(zhí)行的是“catalina.bat start”命令。
如果我們不是在Tomcat的bin目錄作為當前目錄時調(diào)用startup.bat,就會出現(xiàn)如圖1-18所示的錯誤信息(在bin目錄的父目錄下調(diào)用除外)。

圖1-18 在其他目錄下啟動Tomcat出錯
如果要想在任意目錄下都能啟動Tomcat,就需要設置CATALINA_HOME環(huán)境變量,你可以將CATALINA_HOME添加到Windows XP系統(tǒng)的環(huán)境變量中,其值就是Tomcat的安裝目錄。在筆者的機器上,Tomcat的安裝目錄是D:\OpenSource\apache-tomcat-6.0.16。添加CATALINA_HOME環(huán)境變量的過程和前述添加JAVA_HOME環(huán)境變量的過程是一樣的。如果你不想在系統(tǒng)的環(huán)境變量中添加,也可以直接在startup.bat文件中進行設置。下面是在startup.bat文件中設置CATALINA_HOME后的文件片段:
…
rem $Id: startup.bat 5627702007-08-04 22:13:58Z markt $
rem --------------------------------------------------------------------
set CATALINA_HOME=D:\OpenSource\apache-tomcat-6.0.16
rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=%CURRENT_DIR%
…
注意以粗體顯示的這句代碼的作用就是設置CATALINA_HOME環(huán)境變量,在它的下面是判斷CATALINA_HOME是否為空的語句。如果找不準位置,干脆將設置CATALINA_HOME環(huán)境變量的這句代碼放到文件的第一行。JAVA_HOME環(huán)境變量也可以采用同樣的方式進行設置。不過,如果要在其他目錄下利用shutdown.bat來關閉Tomcat服務器,則需要在shutdown.bat文件中設置CATALINA_HOME和JAVA_HOME這兩個環(huán)境變量,設置變量的位置和startup.bat文件一樣,都是在判斷CATALINA_HOME是否為空之前。當然,為了一勞永逸,避免重裝Tomcat后還要進行設置(需要是同一版本的Tomcat安裝在同一位置),我們最好還是將CATALINA_HOME和JAVA_HOME這兩個環(huán)境變量添加到Windows XP系統(tǒng)的環(huán)境變量中。
有的讀者可能會對Tomcat安裝目錄的環(huán)境變量的名字是CATALINA_HOME而感到奇怪,按照其他環(huán)境變量的設置來看,JAVA_HOME表示JDK的安裝目錄,那么應該用TOMCAT_HOME來表示Tomcat的安裝目錄,可為什么要使用CATALINA_HOME呢?實際上,在Tomcat 4以前,用的就是TOMCAT_HOME來表示Tomcat的安裝目錄,在Tomcat 4以后,采用了新的Servlet容器Catalina,所以環(huán)境變量的名字也改為了CATALINA_HOME。
在Windows系統(tǒng)下環(huán)境變量的名字是與大小寫無關的,也就是說,JAVA_HOME和java_home是一樣的。
了解了startup.bat文件以后,我們再來看看真正負責啟動Tomcat服務器的catalina.bat文件。通過分析catalina.bat文件,我們發(fā)現(xiàn)它還調(diào)用了一個文件setclasspath.bat。在setclasspath.bat文件中,它檢查JAVA_HOME環(huán)境變量是否存在,并通過JAVA_HOME環(huán)境變量,找到java.exe,用于啟動Tomcat。在這個文件中,還設置了其他的一些變量,代表調(diào)用Java的標準命令,有興趣的讀者可以自行分析一下這個文件。在執(zhí)行完setclasspath.bat之后,catalina.bat剩下的部分就開始了Tomcat服務器的啟動進程。
直接執(zhí)行catalina.bat時,需要帶上命令行的參數(shù)。讀者可以在命令提示符窗口下,執(zhí)行catalina.bat,就會打印出catalina.bat命令的各種參數(shù)及其含義,如圖1-19所示。

圖1-19 catalina.bat的各參數(shù)信息
其中常用的參數(shù)是start、run和stop。參數(shù)start表示在一個單獨的窗口中啟動Tomcat服務器,參數(shù)run表示在當前窗口中啟動Tomcat服務器;參數(shù)stop表示關閉Tomcat服務器。我們執(zhí)行startup.bat,實際上執(zhí)行的就是“catalina.bat start”命令;執(zhí)行shutdown.bat,實際上執(zhí)行的是“catalina.bat stop”命令。“catalina.bat run”命令有時候是非常有用的,特別是當我們需要查看Tomcat的出錯信息時。
在開發(fā)JSP程序時,經(jīng)常會碰到自己機器上的8080端口號被別的應用程序占用,或者在配置server.xml時出現(xiàn)錯誤,當通過startup.bat(相當于執(zhí)行“catalina.bat start”)啟動Tomcat服務器時,如果啟動過程中出現(xiàn)嚴重錯誤,由于是在單獨的窗口中啟動Tomcat服務器,所以一旦啟動失敗,命令提示符窗口就自動關閉了,程序運行中輸出的出錯信息也隨之消失,而且沒有任何的日志信息,這就使得我們沒有辦法找出錯誤原因。當出現(xiàn)錯誤時,我們可以換成“catalina.bat run”命令再次啟動,一旦啟動失敗,僅僅是Tomcat服務器異常終止,但是在當前的命令提示符窗口下仍然保留了啟動時的出錯信息,這樣我們就可以查找啟動失敗的原因了。
- Computer Vision for the Web
- Leap Motion Development Essentials
- SQL Server 2012數(shù)據(jù)庫技術及應用(微課版·第5版)
- MATLAB 2020 從入門到精通
- PHP+MySQL+Dreamweaver動態(tài)網(wǎng)站開發(fā)實例教程
- 利用Python進行數(shù)據(jù)分析(原書第3版)
- OpenGL Data Visualization Cookbook
- 零基礎學C語言第2版
- OpenMP核心技術指南
- SignalR:Real-time Application Development(Second Edition)
- Mastering jQuery Mobile
- H5+移動營銷設計寶典
- Robot Framework Test Automation
- IBM RUP參考與認證指南
- 菜鳥成長之路