千家信息网

怎样调试Tomcat源码

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,怎样调试Tomcat源码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。今天以Tomcat源码为例,来总结下源码调试的方式。例如问题的
千家信息网最后更新 2024年11月26日怎样调试Tomcat源码

怎样调试Tomcat源码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

今天以Tomcat源码为例,来总结下源码调试的方式。

例如问题的处理过程,大致是发现问题,分析问题,解决问题。源码的调试我们简单总结下:

获取源代码

Tomcat的源代码下载方式也比较多

从github上下载(https://github.com/apache/tomcat)

从Tomcat的SVN服务器下载(http://svn.apache.org/repos/asf/tomcat/)

从Tomcat官网下载(http://tomcat.apache.org/download-80.cgi)

每个版本的下载页最下方都会有对应的源码压缩包供下载,如下图

将源码导入IDE

这个工作每个Developer应该都没有问题,我们不过多写这个。

添加依赖

导入到IDE之后,许多文件都会提示红X,提示缺少依赖的jar文件。此时可以通过添加系统中已有的相关文件,如果是此Maven形式组织工程,可以直接添加相应的依赖。

运行应用

这一步需要先找到应用的入口,即Main-Class,之后执行该类即可。当然,有些应用在运行时需要必要的输入参数,Tomcat就需要指定catalina.home。

这类入口应用,可以通过以下方式寻找:

如果应用是以jar文件的形式提供,那么在它的META-INF目录内下会有一个

MANIFEST.MF文件。

如果jar文件中没指定,或者应用是以脚本的形式启动,可以从脚本中寻找其默认执行的类,例如Tomcat的启动脚本catalina.bat中,就包含这样的内容:

set MAINCLASS=org.apache.catalina.startup.Bootstrap

通过上述方式确定主类之后,根据需要配置相应的VM参数及应用自身的参数,代码就跑起来了。之后根据想要了解的内容,设置断点,开启Debug之旅吧。

以上是通用的步骤,具体到Tomcat,我们来谈一起具体的方式方法。

以工程形式调试

以Eclipse为例

首先创建一个工程Java工程。

导入源码文件,此处可以有如下方式:

全部拷贝进来

以link source方式引入。(右击项目,在build Path中选择Link source)

将已安装的Tomcat的lib下的jar文件添加到项目依赖中,再添加其它需要的jar文件,例如ant.jar

设置主类

设置参数

点击Debug,程序跑起来了,开始调试吧。

以Attach方式调试

新建工程,将源码导入。此时可以把Tomcat以debug的方式启动。为了在第一时间将代码Attach到进程中,需要设置jpda启动后自动暂停,等待应用连接。

可以在脚本文件catalina.bat中直接设置

set JPDA_OPTS=-agentlib:jdwp=transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%

直接把上面红色内容改成y即可,也可以先在命令行中设置一下

之后执行命令

catalina.bat jpda start

默认的连接端口是8000

之后,项目中直接以远程调试的方式进行即可,

此时即可进行Tomcat的源代码调试,如果在一启动的时候就想跟踪流程,可以先在Bootstrap中增加断点,开始调试吧。

关于怎样调试Tomcat源码问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

0