Tomcat 源码阅读(序)

Posted 皓月行空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat 源码阅读(序)相关的知识,希望对你有一定的参考价值。

环境:tomcat7.0.78、jdk 1.7.17  myeclipse2014

坚持一下,把源码看完,勤奋一点,不要在懒惰了,你已经落下别人很多了


学习Tomcat源代码,首先得需要把tomcat源码下载下来,导入到ide中,一直忽略了这个问题,这里就写一篇文章,记一下如何把tomcat源码导入到ide中


1、新建maven项目:

创建一个新的maven项目,网上都有一些教程,这里只是截图,不加赘述。

至于为什么创建maven项目,而不是java项目,是因为 tomcat中需要一些三方jar包,这些jar包 个人习惯用maven 的pom.xml文件集成进来,当然 ,仁者见仁、智者见智,自己习惯就行。

2、下载tomcat源码,这里仅提供tomcat7.0.78版本的源码下载:

https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.78/src/

3、解压下载的tomcat源码压缩包,java目录结构下的 javax 和org  这两个文件夹拷贝到myeclipse 的src/main/java包下

吧conf文件夹拷贝到项目的根目录下, 并且在conf 右键 ---》Build  Path---》Use as Source Folder.

最终myeclipse的目录结构如下所示:


4、集成tomcat 的依赖jar包:

pom.xml文件如下所示:

<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.zxl.src</groupId>
  <artifactId>src-tomcat-7.0.78</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>src-tomcat-7.0.78</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
	<dependency>
	    <groupId>org.apache.ant</groupId>
	    <artifactId>ant</artifactId>
	    <version>1.9.9</version>
	</dependency>
     <dependency>
	    <groupId>org.eclipse.jdt.core.compiler</groupId>
	    <artifactId>ecj</artifactId>
	    <version>4.4.2</version>
	</dependency>
	
	
	<dependency>
	    <groupId>wsdl4j</groupId>
	    <artifactId>wsdl4j</artifactId>
	    <version>1.6.2</version>
	</dependency>
	<dependency>
	    <groupId>geronimo-spec</groupId>
	    <artifactId>geronimo-spec-jaxrpc</artifactId>
	    <version>1.1-rc4</version>
	</dependency>
    <!-- 

	<dependency>
	    <groupId>org.easymock</groupId>
	    <artifactId>easymock</artifactId>
	    <version>3.2</version>
	</dependency>
	
	<dependency>
	    <groupId>org.hamcrest</groupId>
	    <artifactId>hamcrest-core</artifactId>
	    <version>1.3</version>
	</dependency>
	 -->
  </dependencies>
</project>
至于怎么找到的这些依赖jar包,可以通过找到classpath文件来处理,如下图所示:


其中classpath的文件内容如下所示:


我们可以直接去maven资源库里找到对应的jar包,这里提供一下maven资源库的地址

http://search.maven.org/

5、最终tomcat源码的项目结构如下图所示:


6、找到Bootstrap  文件,执行。

7、如果 想部署几个web项目,可以直接修改conf下的server.xml文件里的 Host标签内容:


这样,最终会指向 我们部署到Tomcat下的web项目。


以上是关于Tomcat 源码阅读(序)的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat源码阅读初始化

Tomcat源码阅读(初窥)

Tomcat 源码阅读Lifecycle

搭建Tomcat源码阅读环境,无bug运行调试。答应我,和我一起学习Tomcat,不要放弃!

tomcat源码阅读之容器(Container)

tomcat源码阅读之生命周期(LifeCycle)