Tomcat 源碼下載 以及 啓動 運行

首先我們下載Tomcat源碼

源碼下載地址:  https://tomcat.apache.org/download-80.cgi

解壓以及創建必要目錄和配置

建立POM文件

需要通過Maven組織文件,因此需要在根目錄下創建目錄中新建pom.xml文件:

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.5</artifactId>

    <name>Tomcat8.5</name>

    <version>8.5</version>

 

    <build>

        <finalName>Tomcat8.5</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>

        <!-- https://mvnrepository.com/artifact/javax.xml/jaxrpc -->
        <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>

配置IDEA運行項目

配置maven自動導包

項目構建好後,請先clean然後install 保證項目沒有問題。

缺少jar可以在maven的阿里倉庫下載

啓動

Tomcat啓動的目錄爲一個main方法類:org.apache.catalina.startup.Bootstrap

如果啓動或者編譯過程中出現Test測試代碼報錯,註釋該代碼即可。Tomcat源碼util.TestCookieFilter類會報錯,將其註釋即可

如果出現下面錯誤:

在直接啓動org.apache.catalina.startup.Bootstrap的時候沒有加載org.apache.jasper.servlet.JasperInitializer,從而無法編譯JSP。

解決辦法是在tomcat的源碼org.apache.catalina.startup.ContextConfig中的configureStart函數中手動將JSP解析器初始化:

添加代碼:context.addServletContainerInitializer(new JasperInitializer(), null);

添加位置如下圖:

代碼在720多行

修改完後,項目再啓動,端口衝突可以在conf文件中的server.xml中修改

啓動項目,我們再在瀏覽器訪問http://localhost:8080/ ,就可以看到我們所熟悉的經典歡迎頁面了

如果出現java lang ClassNotFoundException listeners ContextListener的錯誤

我們可以刪除webapps中的文件

然後在webapps中加入war包,也就是我們部署的項目

啓動項目後,會加載我們的項目

啓動完成後,我們訪問頁面:

maven依賴可下載:

地址:https://mvnrepository.com/artifact/javax.xml/jaxrpc/1.1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章