Tomcat源碼導入idea的方法
1.下載tomcat代碼
本文選擇9.0分支,此版本servlet還是javax開頭的 github
2.下載之后的目錄結構

3.源碼使用ant構建(這里改用pom)
<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>tomcat</artifactId>
<name>tomcat</name>
<version>9.0.19</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.10.11</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.xml.soap/javax.xml.soap-api -->
<dependency>
<groupId>javax.xml.soap</groupId>
<artifactId>javax.xml.soap-api</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jaxrpc_1.1_spec</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>ecj</artifactId>
<version>3.17.0</version>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>4.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>biz.aQute.bnd</groupId>
<artifactId>biz.aQute.bndlib</artifactId>
<version>5.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.unboundid</groupId>
<artifactId>unboundid-ldapsdk</artifactId>
<version>3.2.0</version>
</dependency>
</dependencies>
</project>
直接使用idea重新導入,jdk暫時選擇1.8
4.問題解決
4.1控制臺亂碼
信息: 至少有一個JAR被掃描用于TLD但尚未包含TLD。 為此記錄器啟用調(diào)試日志記錄,以獲取已掃描但未在其中找到TLD的完整JAR列表。 在掃描期間跳過不需要的JAR可以縮短啟動時間和JSP編譯時間。
九月 29, 2021 3:52:17 上午 org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
警告: 使用[SHA1PRNG]創(chuàng)建會話ID生成的SecureRandom實例花費了[149]毫秒。
九月 29, 2021 3:52:17亂碼 修改conf/logging.properties的編碼(現(xiàn)在默認utf-8,基本無修改) 警告: 使用[SHA1PRNG]創(chuàng)建會話ID生成的SecureRandom實例花費了[149]毫秒 亂碼
這里的亂碼本質(zhì)原因是properties文件亂碼,tomcat采用系統(tǒng)的讀取配置文件方式,使用的是URL.openStream,然后采用properties.load方法,這樣會導致亂碼
解決方案

把兩個國際化文件讀取重寫Localizer、StringManager
4.2訪問8080報錯jsp等class找不到
org.apache.catalina.startup.ContextConfig#configureStart方法加一句代碼
//TODO 手工加的
context.addServletContainerInitializer(new JasperInitializer(), null);

5.訪問localhost:8080

完
注意點,有其他編譯選項發(fā),jdk11-16可以直接注釋
其他報錯正常解決就行
到此這篇關于Tomcat源碼導入idea的文章就介紹到這了,更多相關Tomcat源碼導入idea內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
tomcat+nginx實現(xiàn)多應用部署的示例代碼
本文主要介紹了tomcat+nginx實現(xiàn)多應用部署的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11
Tomcat請求的資源[/XXX/]不可用問題解決方法(適合小白)
這篇文章主要給大家介紹了關于Tomcat請求的資源[/XXX/]不可用問題解決方法,文中介紹的方法非常適合小白,文中介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-01-01
CentOS設置IP連接網(wǎng)絡實現(xiàn)過程圖解
這篇文章主要介紹了CentOS設置IP連接網(wǎng)絡實現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09
使用Tomcat無法訪問http:localhost:8080的解決方法
本文主要介紹了使用Tomcat無法訪問http:localhost:8080的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05
解決Tomcat啟動報錯:嚴重:Unable?to?process?Jar?entry?[META-INF/v
這篇文章主要介紹了解決Tomcat啟動報錯:嚴重:Unable?to?process?Jar?entry?[META-INF/versions/9/module-info.class]問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12

