omcat5中的Embeded版本,為應(yīng)用中集成完整的Web服務(wù)提供了盡可能大的空間,不僅使開發(fā)者容易獲得對標(biāo)準(zhǔn)HTTP的處理,還有SSL的通訊處理,使開發(fā)者很容易就可以對原有非Web系統(tǒng)進行擴展以支持瘦客戶端應(yīng)用,通向Web大門的鑰匙已經(jīng)放在這里,剩下的就是看你怎樣來發(fā)揮了。 Tomcat嚴(yán)格意義上不是一個真正的AppServer,只是支持運行Servlet和Jsp的Web容器,此外擴展了一些AppServer的功能,如數(shù)據(jù)庫連接池,JNDI等,如何提煉,或者說把Tomcat整理成一個最小的集合成為Tomcat嵌入版本的關(guān)鍵,從Tomcat5.0開始提供和支持Embeded版本,即最簡化Tomcat Server,下面就針對Tomcat Server的Embeded版本進行介紹,怎樣把Tomcat集成到Java應(yīng)用中。 首先可以在http://apache.mirrors./jakarta/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28-embed.tar.gz下載Tomcat的Embeded版本,下載解壓后把最里層的jakarta-tomcat-5.0.28-embed目錄copy到容易查找的目錄,為簡易需要更名為EmbeddedTomcat,作為嵌入Tomcat的工作目錄。 首先我們需要了解Tomcat在工作時的層次情況,它按照: 上面是Tomcat實現(xiàn)的內(nèi)部工作結(jié)構(gòu): 一個Server含有幾個Connector,比如non-SSL HTTP/1.1 Connector on port 8080,SSL HTTP/1.1 Connector on port 8443和AJP 1.3 Connector on port 8009。連接器就是接受客戶端情況然后封裝成request和response對象交給容器處理。 通常是一個Engine,其中Engine里含有1個Host,1個Host 內(nèi)可以含有多個Context,Context代表Web應(yīng)用,即1個Host里可以包含多個Web應(yīng)用,tomcat的webapps目錄里面防止的就是一個個web應(yīng)用。Engine接收Service發(fā)過來的請求(通過Connector),交給相應(yīng)的Host進行處理,然后Host交給具體的Context。 下面是非常簡單的創(chuàng)建Embeded tomcat的例子,示意其使用 把tomcat-embed目錄下的lib內(nèi)的所有jar包引入到項目的環(huán)境中,即完成了項目的環(huán)境搭建。在應(yīng)用里開發(fā)嵌入式Tomcat,需要根據(jù)以下步驟: 1)創(chuàng)建org.apache.catalina.startup.Embedded實例,其代表嵌入式Tomcat Server的實例; 2)創(chuàng)建org.apache.catalina.Engine 實例,代表上面XML結(jié)構(gòu)示例中的Engine,作為容器用來包含Host節(jié)點; 3)創(chuàng)建org.apache.catalina.Host實例,代表虛擬主機服務(wù),把它加入到2)中產(chǎn)生的Engine; 4)創(chuàng)建一個或多個org.apache.catalina.Context實例,代表Web應(yīng)用,每個Web應(yīng)用都需要加入到3)產(chǎn)生的Host中; 5)最后創(chuàng)建org.apache.catalina.Connector實例,把它加入1)創(chuàng)建的tomcat實例中,它用來接收客戶發(fā)出的請求。 具體和完整的代碼如下: [java] view plain copy
以上代碼親測可用,這里我同時啟動了兩個項目,manager和ROOT,下面是我的工程目錄 在瀏覽器輸入http://localhost:9999/ROOT,顯示如下: 在瀏覽器輸入http://localhost:9999/manager,顯示如下: 在這里需要注意,由于嵌入式版本Tomcat沒有common/lib目錄,一些需要的Jar包可以復(fù)制到JDK的/jre/lib/endorsed目錄下進行使用。 在OFBiz中默認(rèn)使用的embeded tomcat,具體的可以參考里面對于嵌入式啟動相關(guān)的內(nèi)容 這里我們討論了如何使用Embedded Tomcat,并沒有提現(xiàn)出使用內(nèi)嵌Tomcat的好處,我們可以把上面的ROOT和manager項目分開成為兩個單獨的項目,這樣,啟動的時候就可以獨立啟動,配置不同的監(jiān)聽端口的話可以同時啟動,主要是避免需要調(diào)試多個項目的時候同時在一個Tomcat里面啟動,改了一個項目,就要重啟Tomcat,浪費時間,分開之后,就可以獨立進行發(fā)布,各自互不影響,調(diào)試、啟動方便。 |
|