Tomcat是经常用到的轻量级容器,对其熟悉可以帮助我们能够更好的对工程进行调优和排查问题。
一、源码下载
Tomcat7的源码下载地址为:https://tomcat.apache.org/download-70.cgi
二、让源码成功编译并运行起来
1、jar包依赖
Tomcat源码通过编译并运行起来还需要一些依赖的jar包,可以通过将jar包下载好并拷贝的方式和使用maven管理的模式,本文采用大家熟悉的maven管理的模式。
添加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>tomcat7</artifactId> <name>tomcat7</name> <version>7.0</version> <build> <finalName>tomcat7</finalName> <sourceDirectory>java</sourceDirectory> <!--<testSourceDirectory>test</testSourceDirectory> test 下的有些文件报错,因此将test文件夹去掉了--> <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>3.5.1</version> <configuration> <encoding>UTF-8</encoding> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>ant</groupId> <artifactId>ant</artifactId> <version>1.6.5</version> </dependency> <dependency> <groupId>org.easymock</groupId> <artifactId>easymock</artifactId> <version>3.4</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.2.2</version> </dependency> </dependencies> </project>
2、将Tomcat源码导入IDEA
使用maven命令编译项目,在编译的时候可能会报错,本人机器jdk版本为1.7,将这段报错代码注释掉了。
如果编译报test文件夹下类的错误,可以点击如下的按钮,编译没有错误后就可以运行Tomcat了。
3、运行Bootstrap类
Tomcat启动的时候是需要一些参数的,因此在运行Bootstrap类之前,先要传入一些基本的参数配置:
-Dcatalina.home=tomcat源码根目录/ -Dcatalina.base=tomcat源码根目录/ -Djava.endorsed.dirs=tomcat源码根目录/endorsed -Djava.io.tmpdir=tomcat源码根目录/temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=tomcat源码根目录/conf/logging.properties
如下图所示:
接下来可以启动Bootstrap类了:
使用命令可以看到8080服务已经在监听了。
4、运行Web工程
在浏览器输入:localhost:8080,熟悉的界面出来了:
这个是tomcat自己的默认页面,如需运行自己的项目,可以将项目拷到webapps目录下面或者修改server.xml的方式,此处不再赘述。
参考文献:http://blog.csdn.net/z583773315/article/details/56353311