上一篇文章的產出,其實離不開網上各位大神們的輔助,正是通過他們的講解,我才對Tomcat的結構有了更進一步的認識。
但在描述前后端交互的過程中,還有很多細節并沒有描述到位,所以就有了研究Tomcat源碼的想法。
而在配置Tomcat源碼工程的過程中,摸摸爬爬兩個多小時,總算是成功啟動了。
故撰寫此篇博文,授之以漁。
準備工作
1.apache-tomcat-8.5.32-src源碼包,官網下載并解壓即可;
2.apache-ant-1.10.5(用的最新版)下載并安裝:Tomcat源碼默認采用的是ant編譯;安裝好以后配置環境變量



配置好環境變量后在dos下運行 ant -version 查看是否能成功使用

項目創建過程
1、pom.xml文件配置
由于需要將項目導入idea中,故需要在源碼包的根目錄下( 即apache-tomcat-8.5.32-src下 )創建如下pom.xml文件:
<?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>3.1</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>
2、運行ant命令獲取catalina-home的文件夾配置
為了得到catalina-home下的各類文件夾,從而成功使用Tomcat,需要利用ant命令來獲取源碼包對應的文件夾
1)在源碼包文件夾同級下創建catalina-home文件夾;

2)進入win+R->cmd命令行內,cd進入源碼包根目錄下: 即apache-tomcat-8.5.32-src下
3)運行ant;
運行結束之后,會在源碼包根目錄下的 output/build 中生成catalina-home所需的文件夾;將這些復制到源碼包同級的catalina-home中。

IDEA導入項目及配置
1、導入項目
啟動idea,進行import project導入項目, 導入時選擇項目時選擇源碼包的目錄 , 即apache-tomcat-8.5.32-src ,一路默認選擇即可。
2、配置
成功導入項目之后,必須得進行一系列配置才能成功啟動項目。
1)點擊菜單欄的 Run ,在下拉框中選擇 Edit Configurations 。
2)在打開的彈框中進行如下配置:
a. 點左上方綠色加號,選擇Apllication。
b.名字隨意。在MainClass處,輸入: org.apache.catalina.startup.Bootstrap
c.VM options:填入剛剛創建的catalina-home文件夾路徑,如我的是:
-Dcatalina.home="D:\Tomcat-Study\catalina-home"
d.Use classpath of module和pom文件中設置的Tomcat版本一直,不一致會無法成功創建application, 一般會自動對應pom.xml文件中設置的;
e.確認好jre,點擊apply,配置就算完成了。

啟動項目
配置好了以后就可以啟動項目了。可以找到/java/org.apache.catalina.startup.Bootstrap.java文件,在main函數中注入一行如下輸出語句以便觀察。
public static void main(String args[]) {
System.out.println("項目開始啟動===============================");
if (daemon == null) {
// Don't set daemon until init() has completed
Bootstrap bootstrap = new Bootstrap();
try {
........
啟動項目。控制臺顯示如下:

最終出現如下信息且無報錯,則表示項目啟動成功。

此時便可在browser上進行訪問了,輸入localhost:8080,出現Tomcat啟動后的經典畫面。
接下來你就可以進行Tomcat源碼的調試及開發了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。