上一篇文章的產(chǎn)出,其實離不開網(wǎng)上各位大神們的輔助,正是通過他們的講解,我才對Tomcat的結(jié)構(gòu)有了更進一步的認識。
但在描述前后端交互的過程中,還有很多細節(jié)并沒有描述到位,所以就有了研究Tomcat源碼的想法。
而在配置Tomcat源碼工程的過程中,摸摸爬爬兩個多小時,總算是成功啟動了。
故撰寫此篇博文,授之以漁。
準備工作
1.apache-tomcat-8.5.32-src源碼包,官網(wǎng)下載并解壓即可;
2.apache-ant-1.10.5(用的最新版)下載并安裝:Tomcat源碼默認采用的是ant編譯;安裝好以后配置環(huán)境變量
配置好環(huán)境變量后在dos下運行 ant -version 查看是否能成功使用
項目創(chuàng)建過程
1、pom.xml文件配置
由于需要將項目導(dǎo)入idea中,故需要在源碼包的根目錄下( 即apache-tomcat-8.5.32-src下 )創(chuàng)建如下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命令來獲取源碼包對應(yīng)的文件夾
1)在源碼包文件夾同級下創(chuàng)建catalina-home文件夾;
2)進入win+R->cmd命令行內(nèi),cd進入源碼包根目錄下: 即apache-tomcat-8.5.32-src下
3)運行ant;
運行結(jié)束之后,會在源碼包根目錄下的 output/build 中生成catalina-home所需的文件夾;將這些復(fù)制到源碼包同級的catalina-home中。
IDEA導(dǎo)入項目及配置
1、導(dǎo)入項目
啟動idea,進行import project導(dǎo)入項目, 導(dǎo)入時選擇項目時選擇源碼包的目錄 , 即apache-tomcat-8.5.32-src ,一路默認選擇即可。
2、配置
成功導(dǎo)入項目之后,必須得進行一系列配置才能成功啟動項目。
1)點擊菜單欄的 Run ,在下拉框中選擇 Edit Configurations 。
2)在打開的彈框中進行如下配置:
a. 點左上方綠色加號,選擇Apllication。
b.名字隨意。在MainClass處,輸入: org.apache.catalina.startup.Bootstrap
c.VM options:填入剛剛創(chuàng)建的catalina-home文件夾路徑,如我的是:
-Dcatalina.home="D:\Tomcat-Study\catalina-home"
d.Use classpath of module和pom文件中設(shè)置的Tomcat版本一直,不一致會無法成功創(chuàng)建application, 一般會自動對應(yīng)pom.xml文件中設(shè)置的;
e.確認好jre,點擊apply,配置就算完成了。
啟動項目
配置好了以后就可以啟動項目了??梢哉业?java/org.apache.catalina.startup.Bootstrap.java文件,在main函數(shù)中注入一行如下輸出語句以便觀察。
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 {
........
啟動項目??刂婆_顯示如下:
最終出現(xiàn)如下信息且無報錯,則表示項目啟動成功。
此時便可在browser上進行訪問了,輸入localhost:8080,出現(xiàn)Tomcat啟動后的經(jīng)典畫面。
接下來你就可以進行Tomcat源碼的調(diào)試及開發(fā)了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。