网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

怎样调试Tomcat源码

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

成都创新互联是一家专业提供老河口企业网站建设,专注与成都网站建设、网站设计、H5技术、小程序制作等业务。10年已为老河口众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

今天以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源码问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


文章题目:怎样调试Tomcat源码
网站链接:http://bjjierui.cn/article/peiiso.html

其他资讯