Tomcat源码分析
Posted Peter Jones
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat源码分析相关的知识,希望对你有一定的参考价值。
Tomcat架构
连接器 Coyote
Catalina容器
源码分析
Tomcat源码分析启动Tomcat源码
一、Tomcat简介
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器。
二、下载源码
进入tomcat官网
点击左侧导航栏的Tomcat8。然后下载源码
三、Idea启动源码
tomcat使用的是ant,大家一般都是对maven比较熟悉,所以先将ant项目转换成maven项目。
1.转换成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>Tomcat8.5</artifactId>
<name>Tomcat8.5</name>
<version>8.5</version>
<build>
<finalName>Tomcat8.5</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>
<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.6</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>
<!-- https://mvnrepository.com/artifact/javax.xml/jaxrpc -->
<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>
2. idea导入项目,设置Application。
启动类是 org.apache.catalina.startup.Bootstrap。
vm参数是 -Duser.language=en -Duser.region=US -Dfile.encoding=UTF-8,这几个参数是为了解决控制台输出乱码。
3. 删除test、webapps/example。
因为这两个文件夹里缺少几个java文件,会编译不通过。或者,你也可以手动删除报错的java文件。
4. 添加jsp解析器。
找到ContextConfig文件,在 configureStart方法中添加一句代码
context.addServletContainerInitializer(new JasperInitializer(), null);
5. 启动项目
查看控制台有没有报错信息,有就自己复制错误信息去百度。
现在打开浏览器访问 http://localhost:8080/
熟悉的页面出来了,启动源码成功!!!
在阅读源码之前,请先了解web服务器(Tomcat源码分析 (一)----- 手写一个web服务器),tomcat架构(Tomcat源码分析 (二)----- Tomcat整体架构及组件),生命周期(Tomcat源码分析 (三)----- 生命周期机制 Lifecycle)的概念,
以上是关于Tomcat源码分析的主要内容,如果未能解决你的问题,请参考以下文章
Tomcat源码分析——server.xml文件的加载与解析