Tomcat源碼導入idea的方法
目錄
- 1.下載tomcat代碼
- 2.下載之后的目錄結構
- 3.源碼使用ant構建(這里改用pom)
- 4.問題解決
- 4.1控制臺亂碼
- 4.2訪問8080報錯jsp等class找不到
- 5.訪問localhost:8080
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]創建會話ID生成的SecureRandom實例花費了[149]毫秒。
九月 29, 2021 3:52:17亂碼 修改conf/logging.properties的編碼(現在默認utf-8,基本無修改) 警告: 使用[SHA1PRNG]創建會話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
完
注意點,有其他編譯選項發,jdk11-16可以直接注釋
其他報錯正常解決就行
到此這篇關于Tomcat源碼導入idea的文章就介紹到這了,更多相關Tomcat源碼導入idea內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
相關文章: