博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Tomcat】IDEA下跟踪查看源码
阅读量:6976 次
发布时间:2019-06-27

本文共 3284 字,大约阅读时间需要 10 分钟。

  算是心血来潮吧,想看看 Tomcat 的源码,顺便学习一下。

  这里就简单的做点记录--如何用 IDEA 跟踪查看 Tomcat 源码。
  同时,这里也推荐下 这本书,虽然书中讲的是 tomcat 4 和 tomcat 5,版本比较老,但是这并不影响你去了解 Tomcat 源码以及原理,博主目前正在书本与源码结合硬啃当中。当然这里也提供 ,可以下载下来对照书看。

实现过程

获取源代码

  针对 Tomcat 源码的获取,网上获取的方式也比较多,这里提供三种获取方式,大家可以自行选择:

  1.
  2.
  3.

  博主在这里选择了第一种方式,下载了对应的 zip 压缩文件,并解压到我 IDEA 的工作目录当中。

添加pom文件

  启动 Tomcat 需要一些额外的 jar 包,自己又懒得手动导入,所以加入在这里加入 pom.xml 文件

  这里提供下 pom.xml 文件的内容:

4.0.0
org.apache.tomcat
tomcat8
tomcat8
8.0
tomcat8
java
java
test
org.apache.maven.plugins
maven-compiler-plugin
3.5.1
UTF-8
1.8
1.8
org.apache.maven.plugins
maven-jar-plugin
2.6
junit
junit
4.11
test
ant
ant
1.6.5
org.easymock
easymock
3.4
wsdl4j
wsdl4j
1.6.2
javax.xml
jaxrpc
1.1
org.eclipse.jdt.core.compiler
ecj
4.6.1

将 Tomcat 源码导入到 IDEA 中并编译

  这一步就不做过多叙述了,加入 pom.xml 文件后,跟导入 maven 是类似的。

  附上一张导入好的结果图:

运行应用

  在 Application 中添加 Bootstrap 类 并设置 vm 参数。

  Main class 参数设置:

org.apache.catalina.startup.Bootstrap

  VM options 参数设置,这里将 F:\idea\workspace_1\tomcat-trunk\tomcat-trunk 替换成 tomcat 源码的目录:

-Dcatalina.home=F:\idea\workspace_1\tomcat-trunk\tomcat-trunk-Dcatalina.base=F:\idea\workspace_1\tomcat-trunk\tomcat-trunk-Djava.endorsed.dirs=F:\idea\workspace_1\tomcat-trunk\tomcat-trunk\endorsed-Djava.io.tmpdir=F:\idea\workspace_1\tomcat-trunk\tomcat-trunk\temp-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.util.logging.config.file=F:\idea\workspace_1\tomcat-trunk\tomcat-trunk\conf\logging.properties

  运行 Bootstrap 类中的 main 方法,就可以愉快的跟踪阅读代码了(博主在这一步启动的时候,控制台报了一堆错,主要都来自 test 包下一些过时的方法、以及未找到相关类,也没有什么精力去解决,索性将 test 包全部剔除后就运行成功了)。

  附上一张运行成功的结果图:

转载地址:http://vkypl.baihongyu.com/

你可能感兴趣的文章
标准功能模块组件 -- 内部联络单组件,内部邮件组件,提高多人异地协同办公效率...
查看>>
JEECG社区《微信小程序开发培训》视频
查看>>
软件开发--深入理解程序的结构
查看>>
MongoDB安装
查看>>
我的新技术博客
查看>>
第三期 OSI七层中第一层 物理层
查看>>
No.6 PHP的基本配置与优化
查看>>
javabean属性的类型选择包装类还是基本数据类型
查看>>
使用T-SQL语句操作数据表-更新数据
查看>>
关于SAP BW提示“Carry out repairs in non-original only
查看>>
中国书法的造型元素与原理 刘彦湖
查看>>
20170507Linux七周二次课 io监控free ps 网络状态 抓包
查看>>
26期20180601目录管理
查看>>
26期20180716 iptables规则备份恢复 firewalld zone
查看>>
营销自动化为什么能吸引企业的喜欢?它有何魅力?
查看>>
网络分流器-网络分流器IP网络路由交换测试技术探讨
查看>>
部分人说 Java 的性能已经达到甚至超过 C++,是真的吗?
查看>>
网络安全技术分析:DDoS的攻与防
查看>>
LNMP安装配置
查看>>
什么是机器人底盘 答案在这里!
查看>>