Tomcat介紹(三)完結,即將進入正文

1.2.3IDE 啓動
在項目開發過程中,我們經常需要將服務器集成到IDE中,以便直接將工程發佈到服務器環 境並啓動,從而進行系統調試。
下面將詳細展示如何將Tomcat集成到IDE (以Eclipse爲例)並啓動。
第一步,在Eclipse中添加Tomcat的運行環境。選擇Windows —+ Preferences,彈出Preferences 對話框,如圖1-2所示。
Tomcat介紹(三)完結,即將進入正文

選擇Server —> Runtime Environments,顯示當前已經安裝的服務器運行環境。點擊“Add”, 彈出添加服務器運行環境對話框,如圖1・3所示。(圖1-3添加服務器運行環境對話框)
Tomcat介紹(三)完結,即將進入正文
選擇Apache —Apache Tomcat v8.0,點擊"Next”,顯75如圖1-4所示(圖1-4新建服務器對話框)。
Tomcat介紹(三)完結,即將進入正文

點擊"Browse"選擇Tomcat的安裝根目錄,點擊uFinish,,完成添加服務器運行環境。
第二步,新建服務器配置。選擇File - New - Other彈出新建對話框,然後選擇Server 一 Server,如圖1-5所示。(圖1-5新建服務器配置對話框)
Tomcat介紹(三)完結,即將進入正文
Tomcat介紹(三)完結,即將進入正文

點擊“Next”,如圖1-6所示。

選中"Tomcat v8.0 Server”,並且在 uServer runtime environment,, 中選擇我們第一步新建的 Tomcat運行環境。

點擊“Next”,如圖1-7所示,選擇需要部署的Web工程,點擊“Finish”完成新建工作。(圖1-7選擇項目)

Tomcat介紹(三)完結,即將進入正文
除了在添加服務器時指定部署包(如圖1-7所示),還可以在Servers視圖中選擇服務器,右鍵 點擊"Add and Remove”彈出應用選擇對話框進行添加。
第三步,選擇Window —> Show View-Servers,打開Servers視圖,顯示當前已經添加的服務器 列表,如圖1-8所ZK。

Tomcat介紹(三)完結,即將進入正文

選中服務器,點擊“Debug/Run”運行Tomcat,啓動日誌信息將同步輸出到Eclipse的控制檯 中,如圖1.9所示。

Tomcat介紹(三)完結,即將進入正文

雙擊Servers視圖中的服務器,將會打開服務器配置界面,可通過該界面修改Tomcat的端口號 以及超時時間等信息,如圖1-10所示。(圖1-10服務器配置界面)
Tomcat介紹(三)完結,即將進入正文
如果希望修改Tomcat啓動配置,可以打開運行配置對話框進行編輯,如圖1-11所示。
Tomcat介紹(三)完結,即將進入正文

1.2.4嵌入式啓動

除了上述啓動方式之外,我們還可以將Tomcat嵌入到應用程序中,作爲應用程序提供網絡服 務的組件使用。這主要考慮到如下幾個應用場景。
□系統以安裝包的形式獨立提供。此時,不再適合將應用系統以WAR包的形式發佈到應用 服務器,而是將應用服務器(甚至JRE)集成到系統當中再統一發布。這樣可以爲客戶提 供一站式的安裝體驗,簡化系統安裝部署,提高系統的易用性。
□爲了滿足PAAS環境下應用的研發、交付、管理,近兩年業界提出了微服務(Microservice ) 架構①以及十二要素應用(The Twelve-Factor App )氣這兩者均要求應用是自包含的 (self-contained ),也就是說完全不依賴於一個應用服務器運行環境,而是通過綁定一個端 口將HTTP導出爲服務,以監聽請求。此種情況下,將Tomcat作爲處理HTTP請求的組件 集成到應用中是個不錯的選擇。(當然,另外可選擇的方案是Jetty。)SpringBootflE架同時 支持釆用Tomcat和Jetty作爲導岀HTTP服務的組件。
後續章節將詳細介紹如何以嵌入的方式啓動Tomcato。
① 微服務架構:Martin Fowler的一篇文章(http://martinfowler.com/articles/microservices.html)詳細介紹%e8%af%a6%e7%bb%86%e4%bb%8b%e7%bb%8d) 了微服務的概 念。Spring Framework通過子項目Spring Boot支持快速構建微服務應用。

② 十二要素應用:Adam Wiggins於2012年發佈了 “十二要素應用宣言”,旨在爲構建SAAS應用提供一套方法論。通 過使用標準化流程自動配置,以降低學習成本。與操作系統之間儘可能劃清界限,確保應用的最大可移植性。

適合將應用部署到現代的雲計算平臺,從而在服務器和系統管理方面節省資源。將開發環境和生產環境的差異 降至最低,並使用持續交付實施敏捷開發。可以在工具、架構和開發流程不發生明顯變化的前提下實現擴展- 具體參見 http://12factor.net/ 0

1.2.5 Debug 啓動
在項目發佈之後,我們有時候需要對基於生產環境部署的應用進行調試,以解決在開發環境 無法重現的BUG。這時我們便用到了應用服務器的遠程調試功能,這主要依賴於JDK提供的 JPDA1 ( Java Platform Debugger Architecture, Java平臺調試體系結構)。在絕大多數情況下,我 們並不需要接觸JPDA的相關API,僅需要對服務器和IDE做相關的配置即可。
以調試模式啓動Tomcat非常簡單,只需要在命令行執行如下命令(以Windows爲例,Linux 類似):
C:\apache-tomcat-8.5.6\bin>catalina jpda start
此時,我們會在Tomcat的啓動控制檯看到如下日誌:
Listening for transport dt_socket at address: 8000
當Tomcat以調試模式啓動後,我們還需要一個調試前端來進行具體的功能調試。由於現代IDE 均已提供了遠程調試功能的集成,因此我們可以很容易將其作爲前端進行遠程調試。
以Eclipse爲例,選中需要遠程調試的項目,點擊"DebugConfigurations",彈出Debug配置對 話框。選擇“Remote Java Application",右鍵"New”,創建遠程調試。填寫需要調試的Tomcat 的主機以及端口,點擊“Debug”即啓動遠程調試。
Tomcat介紹(三)完結,即將進入正文
① JPDA:具體參見http://docs.oracle.eom/javase/8/docs/technotes/guidesJpda/architecture.htmlo
對於Tomcat,默認的調試端口爲8000,我們可以通過設置JPDA_ADDRESS環境蚤量來指定其他端 口。(當然,你也可以直接修改catalina.bat和catalina.sh 文件,儘管這種方式對應用服務器有侵入。)

1.3 Tomcat目錄結構
接下來我們簡單介紹一下Tomcat的目錄結構,以方便讀者能夠對Tomcat的基本結構有個初步 認識,也有利於後續章節的深入講解。
Tomcat的目錄結構及主要文件如表1-2所示。

Tomcat介紹(三)完結,即將進入正文

1.4 Tomcat 8.5之後的新特性
在本章的最後,我們扼要說明一下Tomcat 8.5之後的新特性,以使讀者有個初步的認識,這 些新特性在後續章節中會詳細講解。
□自8.0版本開始,Tomcat支持Servlet3.1 , JSP2.3、EL3.0> WebSocket 1.1;並且自9.0版本 開始支持Servlet 4.0。
□爲了讓用戶提前體驗Servlet 4.0的新特性,在8.5版本中,Tomcat提供了一套Servlet 4.0預覽 API ( servlet4preview,它們並不屬於規範,而是Tomcat的一部分,也不會包含到9.0版本 當中)。
□自8.0版本開始,默認的HTTP、AJP鏈接器採用NIO,而非Tomcat7以及之前版本的BIO; 並且自8.5開始,Tomcat移除了對BIO的支持。
口在8.0版本中,Tomcat提供了一套全新的資源實現,採用單獨、一致的方法配置Web應用 的附加資源,以替代原有的Aliases. VirtualLoader、VirtualDirContext、JARO新的資源方 案可以用於實現覆蓋。例如可以將一個WAR作爲多個Web應用的基礎,同時這些Web應用 各自擁有自己的定製功能。
□自8.0版本開始,鏈接器新增支持JDK 7的NIO2。
□自8.0版本開始,鏈接器新增支持HTTP/2協議。
□默認釆用異步日誌處理方式。
除了新增功能,Tomcat8.5也進行了大量的代碼重構。在講解相關組件時,與舊版本(Tomcat7) 相比發生了顯著變更的地方,我們會進行補充說明。
1.5小結
本章簡單介紹了Tomcat的歷史及現狀,講解了如何安裝啓動Tomcat服務器以及在Tomcat環境 下部署Web應用。此外,還介紹了Tomcat的目錄結構及其核心文件,使讀者能夠對Tomcat有個基 本的認識。最後,列舉了Tomcat 8.5之後的幾項新特性。
從下一章開始,我們將開始重點講解Tomcat的架構及其組件相關知識,對Tomcat進行詳細解 構,以使讀者能夠深入理解Tomcat的架構設計以及相關的組件特性、工作原理。
下一章主要側重於Tomcat的總體架構:主要的設計方式、啓動過程、請求處理過程以及Tomcat 的類加載機制。

介紹部分終於完結啦,持續更,每天學習一點點,慢慢來,加油~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章