Idea调试Tomcat源码

发布时间 2023-10-16 17:09:47作者: 郑瀚Andrew

一、下载Tomcat

  • 源码Source Code:https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.93/src/apache-tomcat-8.5.93-src.zip
  • Binary:https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.93/bin/apache-tomcat-8.5.93.zip

建议保持这俩版本一致,不然会出现各种找不到类,方法的情况等。

  • 解压Binary
  • 解压Source Code

参考链接:

https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.93/src/
https://tomcat.apache.org/download-80.cgi 

 

二、Tomcat调试环境配置

创建一个maven项目,

  • 将源码解压目录中的 conf、webappas 直接复制到上面新建的项目根路径下/Users/zhenghan/Projects/debug_tomcat
  • 将源码解压目录中的 java、modules 直接复制到 /Users/zhenghan/Projects/debug_tomcat/src/main
  • 将Binary解压木马中的 lib 直接复制到 /Users/zhenghan/Projects/debug_tomcat

文件拷贝后目录结构如下,

修改 /Users/zhenghan/Projects/debug_tomcat/pom.xml,

<?xml version="1.0" encoding="UTF-8"?>
<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.0</modelVersion>

    <groupId>com.apache</groupId>
    <artifactId>tomcatcode</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>3.4</version>
        </dependency>
        <dependency>
            <groupId>ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.7.0</version>
        </dependency>
        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>javax.xml</groupId>
            <artifactId>jaxrpc</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jdt.core.compiler</groupId>
            <artifactId>ecj</artifactId>
            <version>4.5.1</version>
        </dependency>
    </dependencies>

</project>

配置File->setting-> java compiler,

project bytecode version和jdk版本要一致,

File->project structure->modules,先设置module sdk版本,和你的jdk版本一直,同时引入刚才复制到根目录的lib包中所有jar。

test模块会报错,删掉就行,

然后就可以配置启动程序了。

Run->Edit Configurations点击加号,增加Application,如下图配置

  • org.apache.catalina.startup.Bootstrap
  • -Dcatalina.home="/Users/zhenghan/Projects/debug_tomcat"(你的项目路径)

最后,启动tomcat,访问 

访问成功,就可以在Bootstrap类,main方法中打断点了。 

 

参考链接:

https://zhuanlan.zhihu.com/p/35454131 
https://developer.aliyun.com/article/666276
https://www.cnblogs.com/huim/p/16614196.html
https://blog.csdn.net/qq_35262405/article/details/101780644