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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM