
<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.0modelVersion>
<groupId>org.apache.tomcatgroupId>
<artifactId>tomcat9.0.xartifactId>
<name>tomcat-9.0.xname>
<version>9.0.xversion>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.13.2version>
<scope>testscope>
dependency>
<dependency>
<groupId>org.easymockgroupId>
<artifactId>easymockartifactId>
<version>4.3version>
dependency>
<dependency>
<groupId>org.apache.antgroupId>
<artifactId>antartifactId>
<version>1.9.5version>
dependency>
<dependency>
<groupId>javax.xml.rpcgroupId>
<artifactId>javax.xml.rpc-apiartifactId>
<version>1.1version>
dependency>
<dependency>
<groupId>wsdl4jgroupId>
<artifactId>wsdl4jartifactId>
<version>1.6.2version>
dependency>
<dependency>
<groupId>org.eclipse.jdtgroupId>
<artifactId>ecjartifactId>
<version>3.26.0version>
dependency>
<dependency>
<groupId>biz.aQute.bndgroupId>
<artifactId>biz.aQute.bndlibartifactId>
<version>6.4.0version>
dependency>
dependencies>
<build>
<finalName>Tomcat8.5.55finalName>
<sourceDirectory>javasourceDirectory>
<resources>
<resource>
<directory>javadirectory>
resource>
resources>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.1version>
<configuration>
<encoding>UTF-8encoding>
<source>1.8source>
<target>1.8target>
configuration>
plugin>
plugins>
build>
project>

将外面的 conf 和 webapps 复制到 home 目录中,webapps 目录中只需保留 ROOT 目录即可
这样做的好处:
- 统一管理
- 避免污染原文件


JRE:JDK 8
Main Class:org.apache.catalina.startup.Bootstrap
Add VM options:
-Dcatalina.base=/Users/mac/IdeaProjects/tomcat-9.0.x/home -Dcatalina.home=/Users/mac/IdeaProjects/tomcat-9.0.x/home -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/Users/mac/IdeaProjects/tomcat-9.0.x/conf/logging.properties -Dfile.encoding=utf-8
注意: 上面的 /Users/mac/IdeaProjects/tomcat-9.0.x/ 的目录是我本地项目的目录,需要根据自己的实际目录来修改

在方法 org.apache.tomcat.util.res.StringManager#getString(java.lang.String) 中增加如下代码:
// 日志打印时会读取系统默认的语言,将原本的 iso-8859-1 转换成 utf-8
if (str != null) {
try {
str = new String(str.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
} catch (Exception e) {
}
}



在方法 org.apache.catalina.startup.ContextConfig#configureStart 中添加
context.addServletContainerInitializer(new JasperInitializer(), null);
