Tomcat5中的部署方式: ?
? ?
? ?
? 1 ? 應用程序部署器(Deployer) ?
? 程序員朋友不要以為這是什么全新的東西,其實以前的版本就已經有了,只不過在Tomcat4中沒有提出這個概念,且它的功能被分散在各個組件中,給人的感覺是比較支離破碎的。于是乎,在Tomcat5中對其進行了包裝和增強,提出了Deployer這個邏輯概念,用于集中表示應用程序部署和發布功能。Tomcat5對其的主要改進就是進行了一些優化,增強了動態部署的功能,減少了重啟Tomcat的次數,增強了服務器的健壯性和可靠性。 ?
? Deployer提供的主要功能就是靜態(在tomcat啟動之前)或者動態(在Tomcat運行以后)進行Web應用程序的部署和刪除,在某些情況下Deployer需要和Manager管理工具聯合使用。 ?
? 1.1 ? Context ? descriptors ?
? 這個也不是新東西了,Tomcat4中的Manager和Admin管理工具其實就是利用它來部署的。在Tomcat5中提出了Context ? descriptor這個概念,且為其配置了一個專有目錄,而不像Tomcat4那樣大雜燴一般地放置在$appBase目錄下。既然了有了名分,當然要為其單獨配置一個目錄才能顯其身份:) ?
? Context ? descriptor是一個只包含Context元素的xml格式的部署文件,其中Context元素與server.xml中的Context元素配置相同。對于一個給定的主機,Context ? descriptor放置在$CATALINA_HOME/conf/[enginename]/[hostname]/目錄下面。Tomcat5默認安裝時,在$CATALINA_HOME\conf\Catalina\localhost目錄中有admin.xml和manager.xml,是兩個管理工具的部署描述符文件。而這兩個文件在Tomcat4中是放置在$CATALINA_HOME/webapps目錄下面的。呵呵。。。果然是換湯不換藥啊:) ?
? ?
? 注意事項:context ? descriptor的文件名可以與Web應用程序名無關,但是Tomcat在部署這個應用程序的時候所創建的程序運行上下文(Context)的名稱是與Web應用程序名稱匹配的。 ?
? ? ? ? ? ?
? 1.2 ? 靜態部署 ?
? 靜態部署是指在Tomcat運行之前就把相關的Web應用程序放置到合適的目錄,在Tomcat啟動的時候自動來部署這些應用程序。 ?
? 如果"deployOnStartup"屬性值為true,那么在Tomcat啟動時,在$appBase目錄下的web應用程序將被自動部署。部署的過程如下: ? ?
? ? Context元素聲明的Web應用程序將被首先部署,這包括server.xml和context ? descriptor文件中的Context元素所指的應用程序; ?
? ? 部署擴展目錄形式的Web應用程序; ? ?
? ? 部署WAR形式的Web應用程序; ?
? Tomcat5對于靜態方式的部署的增強主要就是: ?
? 1、對于context ? descriptor方式的應用程序的部署。 ?
? 2、如果擴展目錄方式的應用程序對應有一個WAR文件,且WAR是更新過的,擴展目錄將被自動刪除,Web應用程序將被從WAR文件中重新部署。而在Tomcat4中,即使WAR文件已更新也無法被重新部署,仍然會使用舊的擴展目錄方式的Web應用程序,除非你自己手動刪除目錄,記得還要重啟Tomcat哦。這么麻煩?(#@($)#*$),看來還是Tomcat5好啊:) ?
? ?
? 1.3 ? 動態部署 ?
? 動態部署是指在Tomcat已經運行以后在不重啟服務器的情況下部署應用程序的方式。 ?
? 如果虛擬主機的"autoDeploy"屬性值為true,則主機會在需要的時候試圖去部署和更新應用程序。這是由虛擬主機在后臺運行的一個負責自動加載的處理線程來完成的,它的工作流程如下: ?
? 1、部署新放入$appBase目錄的War方式的應用程序。 ?
? 2、部署新放入$appBase目錄的擴展目錄方式的應用程序。 ?
? 3、如果一個擴展目錄方式的應用程序對應的War文件更新了,則刪除此目錄,從War文件中重新解開并部署。如果”unpackWARs”屬性值為false,則不解開,從War文件中直接運行。(記住:不用自己刪除擴展目錄,也不用重啟服務器) ?
? 4、如果應用程序的/WEB-INF/web.xml文件被改變,則重新部署這個應用。 ?
? 5、如果應用程序對應的Context元素配置發生了改變,則重新部署這個應用。這包括server.xml或者上下文描述符文件中的Context元素。 ? ?
? 6、如果$CATALINA_HOME/conf/[enginename]/[hostname]/目錄下增加了上下文描述符文件,則重新部署這個應用。 ? ?
? 看來Tomcat5在動態部署上花費了不少功夫,其中的亮點主要就是如果我們修改了web.xml、server.xml配置文件,增加了上下文描述符文件,動態更新了War文件時都可以實現應用程序的自動部署和更新,而不用重新啟動Tomcat服務器,在Tomcat4中都是必須重新啟動服務器的,這是一個非常喜人的變化。畢竟在對服務器的健壯性和可靠性要求越來越高的今天,重啟服務器都是一件令我們非常頭疼的一件事情。以后終于可以挺直腰桿對客戶說“這回堅決不用重啟服務器!”嘿嘿。。。幸福啊! ?
? ?
? 1.4 ? 用Client ? Deployer工具包部署 ?
? ? ? ? ? 這個才是Tomcat5中名副其實的創新,它是一個全新的部署器。 ?
? client ? deployer是一個集驗證、編譯、部署功能與一體的工具包。它使用Ant來實現應用程序的自動化驗證和編譯,使用Manager管理工具來實現應用程序的自動化部署。 ?
? 這個工具包包含:Catalina ? Ant工具、Jasper編譯器(用于將jsp編譯為servlet)、應用程序驗證工具(validator ? task)。默認的驗證工具的實現類是org.apache.catalina.ant.ValidatorTask,它只允許以擴展目錄的文件路徑作為唯一的參數。 ?
? 此部署工具包使用一個事先寫好的Ant腳本,包含如下一些目標(target): ? ?
? ? compile ? (默認):用于驗證和編譯Web應用程序。它可以在不啟動Tomcat的情況下被單獨使用。由于使用的是新的Jasper編譯器的緣故,編譯后的應用程序將只能在Tomcat ? 5.X版本上使用。需要提醒的是,不光是jsp文件被編譯為servlet, ? 應用程序的/WEB-INF/classes目錄下的Java源文件也將被同時編譯為class文件。 ?
? ? deploy:將Web應用程序部署到Tomcat服務器中。 ? ?
? ? undeploy:從服務器中解除部署已經部署的某個應用程序。 ?
? ? start:啟動Web應用程序 ?
? ? reload:重新加載Web應用程序 ?
? ? stop:停止Web應用程序 ?
? ?
? 以下是Ant腳本中的一些重要屬性: ?
? ? build:編譯以后的文件默認放置在${build}/webapp${path}。編譯目標執行完以后,生成了應用程序的War ? ―― ? ${build}/webapp${path}.war. ? ?
? ? webapp:放置需要被驗證和編譯的Web應用程序(擴展目錄方式)的文件路徑。默認值為”myapp”。 ?
? ? path:Web應用程序部署后對應的運行上下文的路徑默認是”/myapp“。 ?
? ? url:放置Manager管理工具的絕對路徑,它被部署工具包用來部署和解除部署應用程序。默認情況下,部署器將試圖使用http://localhost:8080/manager訪問本機的Manager管理工具。 ? ?
? ? username:可以使用Manager管理工具的超級用戶的用戶名。 ? ?
? ? Password:超級用戶的密碼。??
? ?
? ?
? 1 ? 應用程序部署器(Deployer) ?
? 程序員朋友不要以為這是什么全新的東西,其實以前的版本就已經有了,只不過在Tomcat4中沒有提出這個概念,且它的功能被分散在各個組件中,給人的感覺是比較支離破碎的。于是乎,在Tomcat5中對其進行了包裝和增強,提出了Deployer這個邏輯概念,用于集中表示應用程序部署和發布功能。Tomcat5對其的主要改進就是進行了一些優化,增強了動態部署的功能,減少了重啟Tomcat的次數,增強了服務器的健壯性和可靠性。 ?
? Deployer提供的主要功能就是靜態(在tomcat啟動之前)或者動態(在Tomcat運行以后)進行Web應用程序的部署和刪除,在某些情況下Deployer需要和Manager管理工具聯合使用。 ?
? 1.1 ? Context ? descriptors ?
? 這個也不是新東西了,Tomcat4中的Manager和Admin管理工具其實就是利用它來部署的。在Tomcat5中提出了Context ? descriptor這個概念,且為其配置了一個專有目錄,而不像Tomcat4那樣大雜燴一般地放置在$appBase目錄下。既然了有了名分,當然要為其單獨配置一個目錄才能顯其身份:) ?
? Context ? descriptor是一個只包含Context元素的xml格式的部署文件,其中Context元素與server.xml中的Context元素配置相同。對于一個給定的主機,Context ? descriptor放置在$CATALINA_HOME/conf/[enginename]/[hostname]/目錄下面。Tomcat5默認安裝時,在$CATALINA_HOME\conf\Catalina\localhost目錄中有admin.xml和manager.xml,是兩個管理工具的部署描述符文件。而這兩個文件在Tomcat4中是放置在$CATALINA_HOME/webapps目錄下面的。呵呵。。。果然是換湯不換藥啊:) ?
? ?
? 注意事項:context ? descriptor的文件名可以與Web應用程序名無關,但是Tomcat在部署這個應用程序的時候所創建的程序運行上下文(Context)的名稱是與Web應用程序名稱匹配的。 ?
? ? ? ? ? ?
? 1.2 ? 靜態部署 ?
? 靜態部署是指在Tomcat運行之前就把相關的Web應用程序放置到合適的目錄,在Tomcat啟動的時候自動來部署這些應用程序。 ?
? 如果"deployOnStartup"屬性值為true,那么在Tomcat啟動時,在$appBase目錄下的web應用程序將被自動部署。部署的過程如下: ? ?
? ? Context元素聲明的Web應用程序將被首先部署,這包括server.xml和context ? descriptor文件中的Context元素所指的應用程序; ?
? ? 部署擴展目錄形式的Web應用程序; ? ?
? ? 部署WAR形式的Web應用程序; ?
? Tomcat5對于靜態方式的部署的增強主要就是: ?
? 1、對于context ? descriptor方式的應用程序的部署。 ?
? 2、如果擴展目錄方式的應用程序對應有一個WAR文件,且WAR是更新過的,擴展目錄將被自動刪除,Web應用程序將被從WAR文件中重新部署。而在Tomcat4中,即使WAR文件已更新也無法被重新部署,仍然會使用舊的擴展目錄方式的Web應用程序,除非你自己手動刪除目錄,記得還要重啟Tomcat哦。這么麻煩?(#@($)#*$),看來還是Tomcat5好啊:) ?
? ?
? 1.3 ? 動態部署 ?
? 動態部署是指在Tomcat已經運行以后在不重啟服務器的情況下部署應用程序的方式。 ?
? 如果虛擬主機的"autoDeploy"屬性值為true,則主機會在需要的時候試圖去部署和更新應用程序。這是由虛擬主機在后臺運行的一個負責自動加載的處理線程來完成的,它的工作流程如下: ?
? 1、部署新放入$appBase目錄的War方式的應用程序。 ?
? 2、部署新放入$appBase目錄的擴展目錄方式的應用程序。 ?
? 3、如果一個擴展目錄方式的應用程序對應的War文件更新了,則刪除此目錄,從War文件中重新解開并部署。如果”unpackWARs”屬性值為false,則不解開,從War文件中直接運行。(記住:不用自己刪除擴展目錄,也不用重啟服務器) ?
? 4、如果應用程序的/WEB-INF/web.xml文件被改變,則重新部署這個應用。 ?
? 5、如果應用程序對應的Context元素配置發生了改變,則重新部署這個應用。這包括server.xml或者上下文描述符文件中的Context元素。 ? ?
? 6、如果$CATALINA_HOME/conf/[enginename]/[hostname]/目錄下增加了上下文描述符文件,則重新部署這個應用。 ? ?
? 看來Tomcat5在動態部署上花費了不少功夫,其中的亮點主要就是如果我們修改了web.xml、server.xml配置文件,增加了上下文描述符文件,動態更新了War文件時都可以實現應用程序的自動部署和更新,而不用重新啟動Tomcat服務器,在Tomcat4中都是必須重新啟動服務器的,這是一個非常喜人的變化。畢竟在對服務器的健壯性和可靠性要求越來越高的今天,重啟服務器都是一件令我們非常頭疼的一件事情。以后終于可以挺直腰桿對客戶說“這回堅決不用重啟服務器!”嘿嘿。。。幸福啊! ?
? ?
? 1.4 ? 用Client ? Deployer工具包部署 ?
? ? ? ? ? 這個才是Tomcat5中名副其實的創新,它是一個全新的部署器。 ?
? client ? deployer是一個集驗證、編譯、部署功能與一體的工具包。它使用Ant來實現應用程序的自動化驗證和編譯,使用Manager管理工具來實現應用程序的自動化部署。 ?
? 這個工具包包含:Catalina ? Ant工具、Jasper編譯器(用于將jsp編譯為servlet)、應用程序驗證工具(validator ? task)。默認的驗證工具的實現類是org.apache.catalina.ant.ValidatorTask,它只允許以擴展目錄的文件路徑作為唯一的參數。 ?
? 此部署工具包使用一個事先寫好的Ant腳本,包含如下一些目標(target): ? ?
? ? compile ? (默認):用于驗證和編譯Web應用程序。它可以在不啟動Tomcat的情況下被單獨使用。由于使用的是新的Jasper編譯器的緣故,編譯后的應用程序將只能在Tomcat ? 5.X版本上使用。需要提醒的是,不光是jsp文件被編譯為servlet, ? 應用程序的/WEB-INF/classes目錄下的Java源文件也將被同時編譯為class文件。 ?
? ? deploy:將Web應用程序部署到Tomcat服務器中。 ? ?
? ? undeploy:從服務器中解除部署已經部署的某個應用程序。 ?
? ? start:啟動Web應用程序 ?
? ? reload:重新加載Web應用程序 ?
? ? stop:停止Web應用程序 ?
? ?
? 以下是Ant腳本中的一些重要屬性: ?
? ? build:編譯以后的文件默認放置在${build}/webapp${path}。編譯目標執行完以后,生成了應用程序的War ? ―― ? ${build}/webapp${path}.war. ? ?
? ? webapp:放置需要被驗證和編譯的Web應用程序(擴展目錄方式)的文件路徑。默認值為”myapp”。 ?
? ? path:Web應用程序部署后對應的運行上下文的路徑默認是”/myapp“。 ?
? ? url:放置Manager管理工具的絕對路徑,它被部署工具包用來部署和解除部署應用程序。默認情況下,部署器將試圖使用http://localhost:8080/manager訪問本機的Manager管理工具。 ? ?
? ? username:可以使用Manager管理工具的超級用戶的用戶名。 ? ?
? ? Password:超級用戶的密碼。??
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
