因工作原因,需要從根本上優化tomcat的配置,故准備從源碼入手,看看可以做哪些工作。
1. tomcat下載
tomcat最新的版本為9,下載源碼的方式有3種:
1/ 官方網站 https://tomcat.apache.org/download-90.cgi,下載如下zip或者tar.gz解壓,最新的release版本為9.0.22
2/github
gitclone https://github.com/apache/tomcat.git 或者下載壓縮包,gitclone得到tomcat目錄
壓縮包默認得到tomcat-master目錄,如下圖所示
3/svn
https://svn.apache.org/repos/asf/tomcat/trunk/
2. tomcat的編譯
准備工作
C:\Users\86137>java -version java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b15) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b15, mixed mode) C:\Users\86137>ant -version Apache Ant(TM) version 1.9.14 compiled on March 12 2019
編譯命令
cd ${tomcat.source} ant
或者eclipse支持
cd ${tomcat.source} ant ide-eclipse
3.導入ide(eclipse為例)
准備工作
增加兩個classpath變量
導入
File->Import->General->Existing Projects into Workspace->選擇Tomcat源碼的根目錄,單擊完成即可導入。
導入完成之后,項目自動完成編譯。
4.啟動
配置1
配置2
啟動成功
5. 可能出現的問題
tomcat 顯示亂碼,-Dfile.encoding=UTF8 或者GBK 都不行,網上各種回答都不能根本解決問題。調試VersionLoggerListener進行發現
修改-Dfile.encoding=UTF8 或者GBK 都 能起效,但亂碼仍然不能解決。
進入StringManager sm變量發現,local為zh_cn時,啟用的屬性文件本身的編碼就是亂碼,嘗試了不少解決辦法如修改eclipse的默認方式為utf-8 都不行,網上各種方式也試過。
均不好用。那我們就繞過去吧,將local設置為us不容易報錯。修改啟動參數,如下所示。
此時,啟動顯示如下:(全部英文,不再亂碼)
參考資料:
【1】https://www.cnblogs.com/davidwang456/articles/11068822.html