如何调试tomcat



我前面大多数文章都是以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为例

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

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

    1. 全部拷贝进来

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

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

  3.  设置主类



  4. 设置参数



  5. 点击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中增加断点,开始调试吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值