編譯Tomcat9源碼及tomcat亂碼問題解決


 

 因工作原因,需要從根本上優化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

【2】http://tomcat.apache.org/tomcat-9.0-doc/building.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM