在寫Hello World Servlet的時候,我們有接觸到如何增加一個Tomcat的Runtime好讓我們掛載我們的網站。在這一篇,我會介紹Eclipse和Tomcat的結合使用注意的地方。
(和我部落格同時發佈:http://www.dotblogs.com.tw/alantsai/archive/2013/09/30/122190.aspx)
Tomcat細部設定
在之前的文章有介紹如何新增Tomcat Server和Runtime,這裡我們會在更詳細的看一下Tomcat有那些設定。
要開啟Tomcat細部設定需要對要修改的Server點兩下,會呼叫出Server的修改視窗:
修改Port 號
預設Tomcat的Port是8080。如果我們希望修改的話就可以在右邊的Http portnumber修改:
修改啟動TimeOut的時間
當專案比較大的時候,然後又有啟動Debug模式,很容易讓Tomcat Timeout導致啟動失敗。因此,會建議把Time out修改為長一點:
設定Build完是否更新Server
預設每當我們有資源做了變動,會自動更新到Server上面。在開發來說或許這個是好的,但是如果上Production這個可能就不是我們要的(要不然一存檔直接更新結果壞掉不就糟糕了),因此可以再右邊做適當調整:
修改網站放置位置
預設是在Eclipse的.metadata/.plugins/org.eclipse.wst.server.core/tmp0下面,不過如果我們之後希望能夠不開Eclipse就能啟動Tomcat瀏覽網站,那麼建議選擇第二個選項“Use Tomcat Installation”並且保留 “DeployPath”為“wtpwebapps”。
如果不能夠修改放置位置,那是因為你那個Server目前有Module,只要把Module刪除了就能夠修改:
直接使用專案的資源而不另外拷貝一份
預設會把專案資源用Copy的方式然後Server存取那個Copy的。這樣有好處是如果我們網站有修改某個資源(例如更新設定檔案),他不會真的影響到我們專案。不過,同時這個也是壞處,因為或許我們希望保存那個修改。
因此我平常都會讓他直接使用專案裡面的那一份。
Tomcat啟動參數 - 增大記憶體
當網站比較大的時候,我們或許回想給Tomcat比較大的記憶體空間,這個時候我們就需要設定啟動參數。
選"Open launch Configuartion" 然後切換到 "Arguments"就可以增加了:
這邊表示從128-768的記憶空間可以用。
設定網址路徑
切換到"Modules"可以設定那些Web專案要用這個伺服器執行,還有使用的預設路徑。舉例來說,我們這個專案的預設路徑就是:/ServletSample
因此連接是:http://localhost:8080/ServletSample/TestServlet
如果我們要改成在URL直接下面,就只要把 Path裡面的 /ServletSample拿掉就可以了。
如何在Eclipse外面看到我們的網站
假設上面的設定有把"Server location"改成用"Tomcat Installation",那麼我們就可以在Eclipse外面啟動Tomcat來瀏覽我們的網站。
首先,我們要到Tomcat下面的%Tomcat%\bin 然後執行startup.bat來啟動Tomcat。
這個時候應該會跳出另外一個視窗,等他跑完我們Tomcat就啟動完成了:
這個時候瀏覽我們的網址:
http://localhost:8080/ServletSample/TestServlet
要停掉Server就呼叫shutdown.bat就可以了。
Tomcat也叫做catalina
在網路上有時候人家會說"catalina"。其實catalina是Tomcat好像5.0以後的Codename所以catalina = Tomcat。所以catlina_home就是Tomcat的解壓縮路徑。
設定Tomcat Runtime路徑 - 如果Tomcat資料夾刪除了會出現 "cannot create a server using the selected type"
在Hello World Servlet範例裡面有提到如何增加一個Tomcat並且設定Tomcat的路徑。不過,假設今天你把那個Tomcat刪除了,那麼這個時候你應該會發現出問題了。你沒有辦法重新在指定Tomcat路徑(沒辦法透過加入的方式去修改),這邊介紹一下修改方式。
首先,我們先看錯誤訊息:
假設這個時候我把 apache-tomcat-7.0.42 重命名為 apache-tomcat-7.0.42_delete,這個時候你會發現程式build不了了,因為缺少Tomcat的資源。而如果透過上次的教學想新增改Tomcat路徑也不行:
資料夾名字被改過了,因此找不到了Servlet的實作,不過Server還存在,這個時候因為存在所以沒法新增。
不過如果把它刪除,也新增不了:
要解決這個,需要先到 Windows -> Prefrence -> Server -> Runtime Environment 先把那個刪除才可以:
做完了就可以新增了。
結語
這一篇簡單從Eclipse的角度來介紹了Tomcat。並且簡單的提到如何啟動Tomcat來瀏覽我們的網站。當然,Tomcat本身學問也很多,之後會在介紹讓我們更好瞭解他的運作模式,並且如果真的用在Production的話,因該要如何把它加入Windows Service和如何做其他設定。