Tomcat源码分析环境搭建(Tomcat源码阅读系列之一)

前言

Tomcat是个不过的Http服务器,其源码是比较值得我们学习的。但是搭建Tomcat源码分析环境时,会存在各种各样的问题,我们在搭建Tomcat源码分析环境的花了比较多的时间在配置上,为了方便他人搭建Tomcat源码分析环境,少走我曾走过的弯路,现写篇关于Tomcat源码分析环境搭建的配置过程。其实Tomcat的官网也给出了Building Tomcat的步骤,本人在配置环境的过程中也是主要参考该文档。

1. 安装基本环境

  1. 安装JDK1.6+,设置环境变量JAVA_HOME(指向JDK的安装根目录,如:C:\Program Files\Java\jdk1.6.0_45)
  2. 安装Ant1.8.2+,设置环境变量ANT_HOME(指向ANT的安装根目录,如:E:\apache-ant-1.9.7),设置环境变量CLASSPATH,其值为%ANT_HOME%\lib;.;C:\Program Files\Java\jdk1.6.0_45\lib\tools.jar,或许大家会问为什么要配置这个环境变量,主要是因为Tomcat的源码是基于Ant构建的,需要引入Ant.jar包,tools.jar是Ant运行所需要的,而 . 则是当前目录的意思。
  3. 安装SVN,其安装过程此处省略。

2. check out相应的Tomcat源代码

SVN的下载地址为:https://tortoisesvn.net/downloads.html
首先要先说明一下,Tomcat的svn地址为:
- Tomcat6: svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk
- Tomcat7: svn.apache.org/repos/asf/tomcat/tc7.0.x/trunk
- Tomcat8: svn.apache.org/repos/asf/tomcat/tc8.0.x/trunk
注:上述地址指向的是各个版本的最新代码,也可以选择tags目录下的以前的某个版本的代码

svn的checkout命令为:svn --force export http://svn.apache.org/repos/asf/tomcat/tc7.0.x/trunk D:Tomcat7,该命令会将把Trunk目录下的代码下载到你的硬盘D:\Tomcat7目录

3. 搭建Eclipse编译共工程环境

在cmd中执行以下命令:

cd D:/Tomcat7
ant ide-eclipse

注:
1. 在这个过程中可能存提示下载tomcat-native-1.1.27目录下的tomcat-native.tar.gz 文件失败,其原因是因为官网中已没有了这个版本的文件,需要将build
.properties.default文件中的tomcat-native.version=1.1.27 修改为tomcat-native.versioni=1.1.34(或者登录http://tomcat.apache.org/download-native.cgi)查看对应的文件版本。
2. 如果接下来又到其他文件下载失败,请在查看你所在的网路是否能够访问得到http://archive.apache.org/dist 网站,如果不能,可能是你的运营商对该网站进行了屏蔽,请连接其他运营商的网路进行下载。
3. ant ide-eclipse 命令执行过程可能有点久,是因为它需要下载Tomcat运行依赖的文件。

4.导入工程到Eclipse

  1. 选择【File】下【Import】
  2. 在弹出的导入窗口中,选择【Import and choose Existing Projects into Workspace】,点击【Next】
  3. 在显示的导入工程窗口中,点击【Browse】,选择我们Tomcat源码的下载根目录,如:D:/Tomcat7
  4. 点击【Finish】

5. 配置Eclipse环境

可能导入工程后,eclipse提示各种错误信息,这是因为我们还没有配置好Eclipse环境。
1. 选择【Windows】下的【preferences】
2. 在弹出的窗口中选择【Java】->【Build Path】->【ClassPath Variable】
3. 设置TOMCAT_LIBS_BASE、ANT_HOME;TOMCAT_LIBS_BASE需要指向build.properties.default中的base.path所指向的位置;ANT_HOME指向ANT的安装根目录。

至此,Tomcat源码的运行环境已基本完成。

6. 运行Tomcat

打开org.apache.catalina.startup.Bootstrap.java文件,右键选择【Run As】->【Java Application】,在弹出的窗口中选择start-tomcat,如果没有弹出窗口,则在【Arguments】->【VM arguments】中填入以下内容:

-Dcatalina.home=${project_loc:/tomcat-7.0.x/java/org/apache/catalina/startup/Bootstrap.java}/output/build

至此,Tomcat已基本可以运行起来,可以通过设置断点来跟踪Tomcat处理请求的过程等探索了。另外本文最终搭建好的环境,我已经放在Github上了,不想搭建的童鞋可以直接clone一份使用。GitHub地址

[注]上述配置步骤只是个人配置过程的记录,可能存在疏漏,如果按照上述配置步骤,仍有疑问或问题,欢迎邮件Woodyoilovecn@gmail.com进行交流,或者留言,我会尽快回复您。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为一个AI机器人,我并没有能力进行源码分析。但是我可以提供一些关于Tomcat8.5的相关信息。 Tomcat8.5是Apache Tomcat的一个版本,是一个开源的Web容器,使用Java编写,可用于部署Java Web应用程序。Tomcat8.5增加了对Java Servlet 3.1、JavaServer Pages 2.3、Java Unified Expression Language 3.0以及WebSocket 1.1的支持。Tomcat8.5还增强了对SSL/TLS的支持,包括支持ALPN协议和OCSP Stapling。Tomcat8.5还提供了一些新的特性,如异步I/O和NIO2。 在Tomcat8.5源码中,主要涉及到的模块有:Catalina、Coyote、Jasper、WebSocket和Tomcat Native。Catalina模块是Tomcat的核心模块,负责处理HTTP请求和响应。Coyote模块负责处理HTTP请求的接收和响应。Jasper模块负责处理JSP页面的编译和执行。WebSocket模块提供了基于WebSocket协议的通信。Tomcat Native模块提供了对APR(Apache Portable Runtime)库的支持,可以提高Tomcat的性能和可靠性。 在Tomcat8.5源码中,还有一些其他的模块,如:Cluster、Manager、Realm、Valve等。Cluster模块提供了集群支持,可以让多个Tomcat实例共享会话信息。Manager模块提供了Web应用程序管理的功能。Realm模块提供了认证和授权的支持。Valve模块提供了一些过滤器和拦截器,可以对HTTP请求和响应进行处理。 总体来说,Tomcat8.5源码是一个庞大而复杂的项目,需要对JavaWeb开发有一定的了解才能进行源码分析。如果有兴趣了解Tomcat8.5的源码,可以先从官方文档和源码注释入手,逐步深入了解各个模块的实现原理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值