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。 為此記錄器啟用調試日志記錄,以獲取已掃描但未在其中找到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的編碼(現在默認utf-8,基本無修改) 警告: 使用[SHA1PRNG]創(chuàng)建會話ID生成的SecureRandom實例花費了[149]毫秒 亂碼
這里的亂碼本質原因是properties文件亂碼,tomcat采用系統的讀取配置文件方式,使用的是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內容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯系alex-e#qq.com處理。
關注官方微信