編譯並運行Apache Tomcat8.5源碼


原文地址: https://www.cnblogs.com/-beyond/p/14256711.html

下載Tomcat

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

  在最下面的Source Code Distributions下面,下載tar.gz或者zip包,然后解壓

  

 

文件的選取

  保留conf、java、webapps目錄,其余文件可以刪除

  整理后,項目結構如下圖所示(pom文件時我自己添加的):

  

 

 

添加為maven項目

  上面導入的項目,並不是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>apache-tomcat</artifactId>
    <version>8.5</version>

    <dependencies>
        <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.10.4</version>
        </dependency>
        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.6.2</version>
        </dependency>
        <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.5.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>apache-tomcat</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>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

  添加pom.xml文件后,選中pom.xml,然后將其添加為maven項目,如下圖所示:

  

 

 

進行編譯項目

  直接使用IDEA右邊欄的maven compile

  

 

 

Tomcat啟動類

  項目已經導入為maven項目了,但是項目此時還不能運行,因為java代碼的執行入口是main方法,所以需要先找到main方法

  而Tomcat的啟動入口則是在java目錄下的org.apache.catalina.startup.Bootstrap類:

  

  上面雖然找到了入口main方法,但是嘗試啟動main方法時,是不能正常啟動tomcat,需要設置一些執行參數(配置)

 

設置Tomcat配置信息

  執行的時候,需要設置一下幾項:

-Dcatalina.home=/Users/ganlixin/code/java-code-all/apache-tomcat
-Dcatalina.base=/Users/ganlixin/code/java-code-all/apache-tomcat
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=/Users/ganlixin/code/java-code-all/apache-tomcat/conf/logging.properties

  配置的catalina.home和catalina.base都是項目的根目錄

  后面兩個配置則是對日志進行配置(使用的log manager,以及日志的配置文件)

 

添加啟動配置

  創建一個配置配置,如下圖所示,也就是將上面的啟動類和啟動參數設置一下

  

 

啟動項目

  上面的啟動項加好后,直接點擊運行即可:

  

  上面有亂碼,這是因為編碼的問題,可以參考:https://www.cnblogs.com/-beyond/p/14258736.html

  上面運行后的日志可以看出,tomcat已經成功啟動了,監聽8080端口。

 

訪問Tomcat

  使用瀏覽器訪問localhost:8080,會看到一個異常棧

   

  上面這個報錯是因為JSP解析器沒有初始化。

 

添加JasperInitializer

  上面的報錯解決方式,可以在org.apache.catalina.startup.ContextConfig類中的configureStart方法中,添加一下JSP解析器初始化即可

context.addServletContainerInitializer(new JasperInitializer(), null);

  上面這行代碼加載webconfig()后面即可。

  

 

 

保存后重新編譯啟動項目

  上面那行代碼加好后保存,然后重新編譯項目,啟動項目后,重新訪問localhost:8080,即可正常訪問tomcat,如下頁面所示:

  

 

原文地址: https://www.cnblogs.com/-beyond/p/14256711.html 

 


免責聲明!

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



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