• Tomcat源码调试环境搭建


    我们一般都是为了解决某个问题,才去看源码的。Java体系就是这点好处,源码唾手可得。遇到问题,最后的解决方法总是可以从源码中找到。

    参考了网上的文章,过程整理如下:

    1. 下载和导入

    官网下载编译好的: apache-tomcat-8.5.12.zip 和 对应的源码包:apache-tomcat-8.5.12-src.zip。

    解压到当前文件夹,然后将 apache-tomcat-8.5.12 文件夹改名为:catalina-home

    如下图:

    然后在 apache-tomcat-8.5.12-src 目录下加入一个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>org.apache.tomcat</groupId>
         <artifactId>Tomcat8.0</artifactId>
         <name>Tomcat8.0</name>
         <version>8.0</version>
     
         <build>
            <finalName>Tomcat8.0</finalName>
            <sourceDirectory>java</sourceDirectory>
            <testSourceDirectory>test</testSourceDirectory>
            <resources>
                <resource>
                    <directory>java</directory>
                </resource>
            </resources>
            <testResources>
                <testResource>
                    <directory>test</directory>
                </testResource>
            </testResources>
            <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>
            <!-- https://mvnrepository.com/artifact/junit/junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.easymock</groupId>
                <artifactId>easymock</artifactId>
                <version>3.4</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.ant/ant -->
            <dependency>
                <groupId>org.apache.ant</groupId>
                <artifactId>ant</artifactId>
                <version>1.10.1</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/wsdl4j/wsdl4j -->
            <dependency>
                <groupId>wsdl4j</groupId>
                <artifactId>wsdl4j</artifactId>
                <version>1.6.3</version>
            </dependency>
            <dependency>
                <groupId>javax.xml</groupId>
                <artifactId>jaxrpc</artifactId>
                <version>1.1</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.eclipse.jdt.core.compiler/ecj -->
            <dependency>
                <groupId>org.eclipse.jdt.core.compiler</groupId>
                <artifactId>ecj</artifactId>
                <version>4.6.1</version>
            </dependency>
        </dependencies>
    </project>
    

    然后从 Ideal 导入 maven 项目apache-tomcat-8.5.12-src

    然后选择源码所在目录:D: omcat_sourceapache-tomcat-8.5.12-src

    最后有个选项,将项目设置为 maven ,要选择 yes.

    2. 配置

    VM options 选中我们上面进行重命名的那个目录。

    Main class 如果不对,也需要改成:org.apache.catalina.startup.Bootstrap

    3. 运行:

    会出现报错:

    将 TestCookieFileter 类的内容注释掉。再次运行。

    测试:

    浏览器访问:localhost:8080 ,结果如下图,搞定。开启tomcat源码之路~~~~~~ SO EASY AND FUNY

     

  • 相关阅读:
    NGUI的HUD Text的扩展插件学习--(HUDText)的使用
    C#设计模式:外观模式(Facade Pattern)
    NGUI的HUD Text的扩展插件学习--(UIFollowTarget)的使用
    NGUI的怎么在一个Gameobject(游戏物体)中调用另一个Gameobject(游戏物体)的脚本(C#)
    C#设计模式:组合模式(Composite Pattern)
    C#Contains方法的错误理解
    C#.NET动态页面静态化生成
    C++ primer plus读书笔记——第1章 预备知识
    如何判断一个数是2的幂
    C++将数值转换为string
  • 原文地址:https://www.cnblogs.com/digdeep/p/6579812.html
Copyright © 2020-2023  润新知