tomcat源碼學(xué)習(xí)-環(huán)境搭建

搭建一個tomcat的源碼閱讀環(huán)境

受同事面試情況的影響,覺得是時候看一會源代碼了,選擇了最熟悉的Tomcat(現(xiàn)在使用最多的Servlet容器),里面運用了很多設(shè)計模式和很好的編程思想,代碼非常優(yōu)秀,值得學(xué)習(xí),并且熟悉了之后也方便以后工作中定位問題。

前期準(zhǔn)備

本機環(huán)境:

  1. 操作系統(tǒng)版本:10.11.5版本mac os x
  2. jdk版本:1.8.0_92
  3. Maven 3
  4. Tomcat7

去官網(wǎng)下載一份Tomcat7源碼tomcat7

選擇Source Code Distributions下面的zip文件進行下載,下載好之后解壓,可以看到Tomcat項目是通過Ant進行構(gòu)建的,沒用過這個東西(傻眼),網(wǎng)上找了一下,發(fā)現(xiàn)也可以通過maven的方式來進行管理依賴關(guān)系。

新建一個Maven的配置文件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>Tomcat7.0</artifactId>
    <name>Tomcat7.0 src</name>
    <version>7.0</version>

    <build>
        <finalName>Tomcat7.0</finalName>
        <sourceDirectory>java</sourceDirectory>
        <resources>
            <resource>
                <directory>java</directory>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.7.0</version>
        </dependency>
        <dependency>
            <groupId>ant</groupId>
            <artifactId>ant-apache-log4j</artifactId>
            <version>1.6.5</version>
        </dependency>
        <dependency>
            <groupId>ant</groupId>
            <artifactId>ant-commons-logging</artifactId>
            <version>1.6.5</version>
        </dependency>
        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.6.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.xml/jaxrpc-api -->
      <dependency>
          <groupId>javax.xml</groupId>
          <artifactId>jaxrpc-api</artifactId>
          <version>1.1</version>
      </dependency>
        <dependency>
            <groupId>org.eclipse.jdt.core.compiler</groupId>
            <artifactId>ecj</artifactId>
            <version>4.4</version>
        </dependency>
    </dependencies>
</project>

網(wǎng)上那個教程不知道為什么我這邊直接就報錯,沒有找到對應(yīng)的jar包,自己去Maven找了一個,發(fā)現(xiàn)也是可以的。

Tomcat的啟動方法是在源碼下面的/java/org/apache/catalina/startup/Bootstrap.java類的main方法。

現(xiàn)在需要配置一個Application,點擊菜單欄Run-Edit configurations...,點擊加號新建配置項Application

配置Main class為org.apache.catalina.startup.Bootstrap,網(wǎng)上有教程說需要配置VM options,不知道為什么我在我自己mac電腦上配置好之后沒有辦法正常使用,只有去掉才可以,還沒有搞清楚原因。

配置好了之后,我們先使用Maven的compile編譯下,看看有沒有問題,一切OK,正常編譯通過。

運行我們之前配好的Application。

tomcat源碼啟動

訪問,http://localhost:8080/。熟悉的Tomcat界面表示環(huán)境搭建成功。底下就可以打斷電調(diào)試Tomcat7的源碼。

參考:

用Intellij IDEA調(diào)試Tomcat7.0源碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容