搭建Tomcat8原始碼開發
概述
開源軟體tomcat,目前幾乎已經是Java web開發的必備軟體了,目前有很多關於tomcat的書籍,但是裡面介紹的大多是關於tomcat的配置,已經通過配置對tomcat進行一些跟應用業務功能的調優,作為一個Java開發人員,感覺如果僅僅只是瞭解一些配置,可能稍微少了一點什麼,最好能夠深入到原始碼中進行學些和了解。
在Google上搜尋了很多關於tomcat原始碼環境搭建的文章,發現按照文章的步驟,幾乎都啟動不了,於是自己嘗試搭建,下面是搭建的方法。
基礎環境搭建
- 下載tomcat原始碼,我這裡是通過
svn
的方式下載的,svn下載地址
2.下載安裝maven工具,這裡我就不多說了,安裝說明太多了,自己網上找。
3.IDE,我這裡使用idea
生成maven工程
我的程式碼本地目錄是:/Users/helanzhou/Documents/helanzhou/java/Tomcat/tomcat8/tomcat-8.5.5-sourcecode
。先在該目錄下生成一個pom.xml
檔案,pom檔案的內容為:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.tomcat</groupId>
<artifactId>Tomcat8.0</artifactId>
<name>Tomcat8.0</name>
<version>8.0</version>
<build>
<finalName>Tomcat8.0</finalName>
<sourceDirectory>java</sourceDirectory>
<testSourceDirectory>test</testSourceDirectory>
<resources>
<resource>
<directory>java</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>test</directory>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3</version>
<configuration>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxrpc</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
<version>4.5.1</version>
</dependency>
</dependencies>
</project>
在這裡,我把java
和test
這兩個模組到載入到pom工程裡,你也可以選擇將test
工程移除,這樣可以省不少事情。
在idea中匯入tomcat pom工程
將tomcat的pom工程匯入到idea中,這個時候,你可以找到tomcat的啟動類org.apache.catalina.startup.Bootstrap
, 找到main
方法,嘗試啟動tomcat,這個時候肯定是報錯的,因為你還有很多後面的步驟沒有完成。
1.需要設定一個執行時的CATALINA_HOME
目錄,你需要下載一個tomcat軟體的壓縮包,由於我選擇的是tomcat-8.5.5的原始碼,下載對應的tomcat版本,tomcat下載地址
2.和tomcat-8.5.5-sourcecode
這個目錄的上層目錄上,建一個和該目錄平行的目錄catalina-home
,將tomcat軟體解壓後,在解壓的目錄下,將以下目錄拷貝到catalina-home
中:
bin
conf
lib
logs
temp
webapps
work
在本地的目錄結構是這樣的:
3.在idea的右上角找到run
這個按鈕,旁邊有Edit Configurations...
這個選項,點選它。得到一個彈出框。
在
Man class:
中填入,org.apache.catalina.startup.Bootstrap
在VM options:
中填入,你剛剛設定catalina-home
路徑,我的是:-Dcatalina.home="/Users/helanzhou/Documents/helanzhou/java/Tomcat/tomcat8/catalina-home"
Working directory
是預設的,不用管Use class path of module
裡選擇Tomcat8.0
,這個和你在pom.xml
中的配置有關JRE
,我選擇的是1.8
如下圖:
4.儲存上面的配置,然後在右上角選擇run
,這個時候,可以啟動起來了,你可以在控制檯上看到下圖的啟動日誌:
如果你將test
工程也包含在pom工程裡,有可能你會啟動失敗,報錯的類是:TestCookieFilter.java
報裡面的CookieFilter.java
類不存在,你可以選擇註釋,也可以選擇實現該filter,我是註釋掉的。
5.開啟chrome
瀏覽器,輸入127.0.0.1:8080
,這時候,你能夠得到下面的頁面:
這個時候,說明你的tomcat環境配置已經成功了,接下來,開啟你的tomcat原始碼除錯之旅吧!
相關文章
- 合約量化系統開發(原始碼搭建)原始碼
- 雜湊遊戲原始碼開發搭建丨hash雜湊遊戲競猜原始碼搭建丨雜湊遊戲系統開發遊戲原始碼
- 秘樂短影片原始碼系統開發搭建原始碼
- 美麗天天秒系統開發(原始碼搭建)原始碼
- 佛薩奇metaforce原始碼系統開發搭建原始碼
- meta2032系統開發原始碼搭建原始碼
- 量化合約原始碼開發技術/合約量化系統開發技術原始碼搭建程式原始碼
- Meta佛薩奇2.0開發原始碼搭建丨Meta魔豹聯盟系統開發原始碼技術開發原始碼
- DAPP開發技術案例|DAPP原始碼搭建APP原始碼
- 華企薈逆生元商城開發原始碼搭建原始碼
- qgroundcontrol開發環境搭建原始碼編譯開發環境原始碼編譯
- 合約量化跟單系統開發搭建丨現成原始碼搭建原始碼
- 短影片原始碼的開發搭建,哪些功能是重點?原始碼
- 搭建直播原始碼與軟體開發的注意事項原始碼
- 數字藏品nft系統開發平臺搭建原始碼原始碼
- 國珍優選系統開發技術原始碼搭建原始碼
- 雜湊遊戲系統開發原始碼+搭建思路詳解遊戲原始碼
- 物加加新零售系統開發原始碼搭建原始碼
- FIL雲算力系統開發原始碼搭建(現成案例)原始碼
- 連鎖店管理系統開發原始碼搭建部署原始碼
- ProTradex鏈上挖礦系統開發原始碼搭建原始碼
- NFT數字藏品系統開發原始碼部署丨NFT鏈遊元宇宙遊戲系統開發原始碼搭建原始碼元宇宙遊戲
- 微商城小程式系統原始碼開發搭建前景和公司原始碼
- 合約跟單系統開發(原始碼搭建方案)_現成原始碼
- 一對一直播系統原始碼開發工具如何搭建?原始碼
- 秒合約系統開發搭建原始碼|秒合約案例原始碼
- IPP孵化Swap專案系統開發技術原始碼搭建原始碼
- LP流動性挖礦/算力系統開發原始碼搭建原始碼
- 社交電商新零售系統開發搭建原始碼部署原始碼
- 鏈動2+1商城系統開發原理(原始碼搭建)原始碼
- MMM(3M)互助合約系統開發原始碼搭建原始碼
- 佛薩奇原始碼系統開發搭建馬蹄鏈案例原始碼
- MetaForce佛薩奇系統原始碼開發搭建馬蹄鏈原始碼
- 大健康新零售系統模式開發原始碼搭建模式原始碼
- Matic佛薩奇2.0系統開發現成原始碼搭建原始碼
- 現成佛薩奇2.0合約系統開發原始碼搭建原始碼
- Windows平臺搭建Kafka原始碼開發環境(Eclipse版本)WindowsKafka原始碼開發環境Eclipse
- 量化合約原始碼搭建開發案例丨合約量化技術開發成熟Demo原始碼