专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Tomcat 7.0.42 源代码运行环境搭建

《Tomcat 7 源码分析》系列文章是我 2013 年到 2015 年间写在 ITeye 上的相关博客汇总,从后台的访客记录看一直到现在还有很多人在读,也是访问量最多的系列,本来计划要写 8 点:

1、 容器启动,从server到listener、jndi、service到connetor、engine到host到context到wrapper一系列对象的组装,包括Digester的使用、JMX注册、JDK5中的新的线程池启动方式等。

2、 一个socket连接如何转化成request的。

3、 一条请求响应链在容器中流转的经过。

4、 容器的自定义classloader机制。

5、 session如何实现,特别是集群环境中的session粘滞和session复制的实现。

6、 nio处理方式的实现。

7、 servlet3新规范中websocket的实现。

8、 容器的关闭机制。

结果只写了 1、2、3、8 ,后面有空将再把这个系列写完。我最近也把博客的首发地改到了掘金,为了保持这个系列的完整性,先把以前写过的转过来吧。

-——————————————————————-

以前看过 Tomcat 5 的一部分源代码,当时只看了个大概的启动分析,后来看了《How Tomcat Works》这本书,讲的还行。但出版的较早,所以是基于 Tomcat 4 的代码分析,Tomcat 已经 release 到 7 (2013年的时候)了,很多后来添加的特性与新的实现方式那本书里面没有涉及。下半年业余时间的主要任务就是完成 Tomcat 7 各个我感兴趣的点的系列文章。

先说下我的源码分析的环境搭建吧,用的是 eclipse Juno Service Release 1,然后在 tomcat官网下了 tomcat7.0.42的源码 ,这两样准备好之后便是搭建能够运行源码的调试环境了。

1、 在 eclipse 中新建一个 java 项目,项目取名 tc7.0.42

63_1.png
JRE 选择 1.6 的

63_2.png
其他设置默认

63_3.png
2、 将下载的 tomcat 源码包解压开,并拷贝到 Eclipse 里新建的项目根目录下

63_4.png
注意,我这里将源码解压开后的 bin 目录重命名成 script 之后才拷贝的,因为新建的 Java 项目中默认编译后的文件存放目录是 bin ,这样做防止编译后的文件覆盖原来拷贝过去的内容。

63_5.png
63_6.png
3、 将项目中默认的 src 目录删掉,java 和 test 作为源目录

63_7.png

63_8.png
4、 此时会发现项目中缺少一些类,需要手动将依赖的 jar 包添加进来,所以新建了一个 depend-lib 目录

63_9.png
5、 实际上缺少的这些 jar 包 eclipse 安装目录里面都有,直接拷贝过来就可以了。

在 eclipse 安装目录的 plugins 目录下,搜索 “ant.jar”

63_10.png
搜索 “javax.wsdl” ,选版本较高的那个 jar 包

63_11.png
搜索 “jaxrpc”

63_12.png
搜索 “jdt.core” 选最大的那个 jar 包

63_13.png
6、 把这些 jar 包加入到编译路径里

63_14.png
7、 此时发现 test 目录下还有错误,实际上是因为 test 里面用到了 junit 的一些注解,所以需要将 junit4 引进来

右击项目,点击 Build Path ,选择 Add Libraries

63_15.png
选择 junit

63_16.png
下一步,junit 版本选择 JUnit 4

63_17.png

自此整个项目应该可以编译了。

8、 接下来运行项目根目录下的 build.xml ,执行默认的 ant 任务,看看项目构建的有没有问题。

63_18.png

63_19.png

控制台输出 “BUILD SUCCESSFUL” 表示编译构建成功。

63_20.png

9、 此时刷新整个项目,会发现多出一个 output 目录

63_21.png

10、 为了让应用跑起来,可以检查一下 output\build\conf 下是否已经有配置文件,这些文件实际是从项目根路径 conf 目录下拷贝过来的。

11、 找到 BootStarp.java 文件,Debug 前加入默认的 catalina home 路径作为启动参数。

BootStarp.java 文件右键选择 Debug As -> Debug Configurations

63_22.png
路径设置为 output 下 build 的绝对路径。比如我自己的机器设置的值是 -Dcatalina.home=”E:\workspace\study\tc7.0.42\output\build”

63_23.png

这样就可以在文件中加入断点 Debug 源码分析了。

文章永久链接:https://tech.souyunku.com/35925

未经允许不得转载:搜云库技术团队 » Tomcat 7.0.42 源代码运行环境搭建

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们