標籤:講解 pid 就是 name 獨立 web 使用 項目 contain
昨天在網上研究了下關於將tomcat嵌入到主程式中進行運行,而不是像以前將一個web項目copy到tomcat中進行運行。之所以這樣做的原因,即是因為項目部署到客戶方,在進行更新的時候,需要手動地進行更新,再把相應代碼copy到tomcat,然後再運行。運用embeded tomcat就可以將項目與tomcat分開,在進行更新時,先使用自訂的程式進行自動化更新,待更新完畢之後,再啟動tomcat(或其它javaee容器)進行項目運行。
這樣做的最終效果就是修改了項目的運行方式。原先的運行方式是以tomcat為中心,由tomcat來啟動和終止項目,現在是由我們的啟動程式為中心,由啟動程式來負責啟動和終止項目。就相當於現在流行的cs程式一樣,有單獨的啟動指令碼,在啟動時進行環境預初始化,更新程式以及其它操作,待完成之後再進行最終的項目啟動。
這篇主要講解如何使用embeded tomcat在代碼中進行啟動和終止。網上的一般文章均為tomca5.x來做,這裡使用了最新的tomcat7,因為tomcat7為embeded開發,單獨發布了org.apache.tomcat.embed包,以進行獨立的embed開發。以下是相應的maven包
| 0102030405060708091011121314151617181920 |
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> <version>7.0.2</version> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-util</artifactId> <version>7.0.2</version> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <version>7.0.2</version> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-logging-juli</artifactId> <version>7.0.2</version> </dependency> |
使用了embed包中的core包,以及用於編譯jsp的jasper包,然後是工具類以及進行上場記錄的logging-juli包。開始寫代碼:
| 1234567 |
//設定工作目錄 String catalina_home = "d:/"; Tomcat tomcat = new Tomcat(); tomcat.setHostname("localhost"); tomcat.setPort(startPort); //設定工作目錄,其實沒什麼用,tomcat需要使用這個目錄進行寫一些東西, Courier, monospace !important; font-weight: normal !important; font-style: normal !important |
使用embeded tomcat進行嵌入式javaee開發-啟動tomcat