首页 技术 正文
技术 2022年11月23日
0 收藏 594 点赞 4,574 浏览 1208 个字

因工作原因,需要从根本上优化tomcat的配置,故准备从源码入手,看看可以做哪些工作。

1. tomcat下载

tomcat最新的版本为9,下载源码的方式有3种:

1/ 官方网站 https://tomcat.apache.org/download-90.cgi,下载如下zip或者tar.gz解压,最新的release版本为9.0.22

编译Tomcat9源码及tomcat乱码问题解决

2/github

  gitclone https://github.com/apache/tomcat.git 或者下载压缩包,gitclone得到tomcat目录

压缩包默认得到tomcat-master目录,如下图所示

编译Tomcat9源码及tomcat乱码问题解决

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变量

编译Tomcat9源码及tomcat乱码问题解决

导入

  File->Import->General->Existing Projects into Workspace->选择Tomcat源码的根目录,单击完成即可导入。
  导入完成之后,项目自动完成编译。

4.启动

配置1 编译Tomcat9源码及tomcat乱码问题解决

配置2编译Tomcat9源码及tomcat乱码问题解决

启动成功

5. 可能出现的问题

tomcat 显示乱码,-Dfile.encoding=UTF8 或者GBK 都不行,网上各种回答都不能根本解决问题。调试VersionLoggerListener进行发现

编译Tomcat9源码及tomcat乱码问题解决

修改-Dfile.encoding=UTF8 或者GBK 都 能起效,但乱码仍然不能解决。

进入StringManager sm变量发现,local为zh_cn时,启用的属性文件本身的编码就是乱码,尝试了不少解决办法如修改eclipse的默认方式为utf-8 都不行,网上各种方式也试过。

均不好用。那我们就绕过去吧,将local设置为us不容易报错。修改启动参数,如下所示。

编译Tomcat9源码及tomcat乱码问题解决

此时,启动显示如下:(全部英文,不再乱码)

编译Tomcat9源码及tomcat乱码问题解决

参考资料:

【1】https://www.cnblogs.com/davidwang456/articles/11068822.html

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,000
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,512
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,358
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,141
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,771
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,849