digdeep

凡是过去,皆是序幕。Read the fucking manual and source code.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

我们一般都是为了解决某个问题,才去看源码的。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:\tomcat_source\apache-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

 

 

posted on 2017-03-19 11:35  digdeep  阅读(1406)  评论(0编辑  收藏  举报
不懂数据库和Web安全的架构师不是一个好的程序员。