Tomcat源碼導(dǎo)入idea的方法
1.下載tomcat代碼
本文選擇9.0分支,此版本servlet還是javax開頭的 github
2.下載之后的目錄結(jié)構(gòu)
3.源碼使用ant構(gòu)建(這里改用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重新導(dǎo)入,jdk暫時(shí)選擇1.8
4.問(wèn)題解決
4.1控制臺(tái)亂碼
信息: 至少有一個(gè)JAR被掃描用于TLD但尚未包含TLD。 為此記錄器啟用調(diào)試日志記錄,以獲取已掃描但未在其中找到TLD的完整JAR列表。 在掃描期間跳過(guò)不需要的JAR可以縮短啟動(dòng)時(shí)間和JSP編譯時(shí)間。
九月 29, 2021 3:52:17 上午 org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
警告: 使用[SHA1PRNG]創(chuàng)建會(huì)話ID生成的SecureRandom實(shí)例花費(fèi)了[149]毫秒。
九月 29, 2021 3:52:17亂碼 修改conf/logging.properties的編碼(現(xiàn)在默認(rèn)utf-8,基本無(wú)修改) 警告: 使用[SHA1PRNG]創(chuàng)建會(huì)話ID生成的SecureRandom實(shí)例花費(fèi)了[149]毫秒 亂碼
這里的亂碼本質(zhì)原因是properties文件亂碼,tomcat采用系統(tǒng)的讀取配置文件方式,使用的是URL.openStream,然后采用properties.load方法,這樣會(huì)導(dǎo)致亂碼
解決方案
把兩個(gè)國(guó)際化文件讀取重寫Localizer、StringManager
4.2訪問(wèn)8080報(bào)錯(cuò)jsp等class找不到
org.apache.catalina.startup.ContextConfig#configureStart方法加一句代碼 //TODO 手工加的 context.addServletContainerInitializer(new JasperInitializer(), null);
5.訪問(wèn)localhost:8080
完
注意點(diǎn),有其他編譯選項(xiàng)發(fā),jdk11-16可以直接注釋
其他報(bào)錯(cuò)正常解決就行
到此這篇關(guān)于Tomcat源碼導(dǎo)入idea的文章就介紹到這了,更多相關(guān)Tomcat源碼導(dǎo)入idea內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何讓tomcat服務(wù)增加java啟動(dòng)命令
這篇文章主要介紹了如何讓tomcat服務(wù)增加java啟動(dòng)命令,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-06-06Tomcat注冊(cè)成服務(wù)的幾個(gè)注意點(diǎn)小結(jié)
這篇文章主要介紹了Tomcat注冊(cè)成服務(wù)的幾個(gè)注意點(diǎn),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08關(guān)于 Tomcat進(jìn)程意外退出的問(wèn)題解析
這篇文章主要介紹了關(guān)于 Tomcat進(jìn)程意外退出的問(wèn)題解析的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11windows下配置兩個(gè)或多個(gè)Tomcat啟動(dòng)的方法
這篇文章主要介紹了windows下配置兩個(gè)或多個(gè)Tomcat啟動(dòng)的方法,需要的朋友可以參考下2014-12-12TOMCAT啟動(dòng)失敗using?catalina_opts為空的解決方法
這篇文章主要給大家分享了TOMCAT啟動(dòng)失敗using?catalina_opts為空的解決方法,文中有詳細(xì)的解決流程,具有一定的參考價(jià)值,需要的朋友可以參考下2023-10-10優(yōu)化Tomcat配置(內(nèi)存、并發(fā)、緩存等方面)方法詳解
這篇文章主要介紹了優(yōu)化Tomcat配置(內(nèi)存、并發(fā)、緩存等方面)方法詳解,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10解析Tomcat架構(gòu)原理到架構(gòu)設(shè)計(jì)
一般學(xué)習(xí)的時(shí)候也是先總覽一下整體,然后逐個(gè)部分個(gè)個(gè)擊破,最后形成思路,了解具體細(xì)節(jié),Tomcat的結(jié)構(gòu)很復(fù)雜,但是Tomcat非常的模塊化,找到了Tomcat最核心的模塊,問(wèn)題才可以游刃而解,了解了Tomcat的整體架構(gòu)對(duì)以后深入了解Tomcat來(lái)說(shuō)至關(guān)重要2021-06-06Tomcat整體結(jié)構(gòu)簡(jiǎn)單介紹
這篇文章主要介紹了Tomcat整體結(jié)構(gòu)簡(jiǎn)單介紹,Tomcat的本質(zhì)是一個(gè)Servlet容器。一個(gè)Servlet能做的事情是:處理請(qǐng)求資源,并為客戶端填充response對(duì)象,需要的朋友可以參考下2019-07-07解決啟動(dòng)tomcat報(bào)錯(cuò)發(fā)生服務(wù)特定錯(cuò)誤1的問(wèn)題
這篇文章主要介紹了解決啟動(dòng)tomcat報(bào)錯(cuò)發(fā)生服務(wù)特定錯(cuò)誤1的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12