因工作原因,需要从根本上优化tomcat的配置,故准备从源码入手,看看可以做哪些工作。
1. tomcat下载
tomcat最新的版本为9,下载源码的方式有3种:
1/ 官方网站 https://tomcat.apache.org/download-90.cgi,下载如下zip或者tar.gz解压,最新的release版本为9.0.22
![689230231300b579864bc8a4887036f5.png](https://i-blog.csdnimg.cn/blog_migrate/296ce4446cee4940a5835a7b1c16043b.jpeg)
2/github
gitclone https://github.com/apache/tomcat.git 或者下载压缩包,gitclone得到tomcat目录
压缩包默认得到tomcat-master目录,如下图所示
![74d89088c922944e3bc0704ba24d3af6.png](https://i-blog.csdnimg.cn/blog_migrate/200a9750008e1ffc9ea88cb187fd7160.jpeg)
3/svn
https://svn.apache.org/repos/asf/tomcat/trunk/
2. tomcat的编译
准备工作
C:甥敳獲86137>java -versionjava 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:甥敳獲86137>ant -versionApache 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变量
![94aff9066550bfb5f4370d7653760aec.png](https://i-blog.csdnimg.cn/blog_migrate/58015ad1990bebf5ac736153301c79fc.jpeg)
导入
File->Import->General->Existing Projects into Workspace->选择Tomcat源码的根目录,单击完成即可导入。
导入完成之后,项目自动完成编译。
4.启动
配置1
![895ffeb26835836787829a17575c45e0.png](https://i-blog.csdnimg.cn/blog_migrate/35218b52fca63ad43aa30e68e184d063.jpeg)
配置2
![16bac0909ec0536e371586ebd88c47f7.png](https://i-blog.csdnimg.cn/blog_migrate/d442c63ae86041ef23bf2f08afe32d52.jpeg)
启动成功
5. 可能出现的问题
tomcat 显示乱码,-Dfile.encoding=UTF8 或者GBK 都不行,网上各种回答都不能根本解决问题。调试VersionLoggerListener进行发现
![63418250241ce15492f437debaa2256e.png](https://i-blog.csdnimg.cn/blog_migrate/cd25d640f917799b82b10687d7fbebce.jpeg)
修改-Dfile.encoding=UTF8 或者GBK 都 能起效,但乱码仍然不能解决。
进入StringManager sm变量发现,local为zh_cn时,启用的属性文件本身的编码就是乱码,尝试了不少解决办法如修改eclipse的默认方式为utf-8 都不行,网上各种方式也试过。
均不好用。那我们就绕过去吧,将local设置为us不容易报错。修改启动参数,如下所示。
![4f6451e98bc4abf3c3ec812021c05673.png](https://i-blog.csdnimg.cn/blog_migrate/a8fafab5c2b6ab399285ec07cbf8296b.jpeg)
此时,启动显示如下:(全部英文,不再乱码)
![fda10334fd2240055159260b4b3c44af.png](https://i-blog.csdnimg.cn/blog_migrate/e338458d8e5a242953a691b3b44cfddc.jpeg)
参考资料:
【1】https://www.cnblogs.com/davidwang456/articles/11068822.html
【2】http://tomcat.apache.org/tomcat-9.0-doc/building.html