怎样调试Tomcat源码

技术怎样调试Tomcat源码怎样调试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后,很多文件会提示红色X,表示依赖jar文件丢失。此时,您可以添加系统中已有的相关文件。如果使用这个Maven表单来组织项目,可以直接添加相应的依赖项。

运行应用程序

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

这种门户应用程序可以通过以下方式找到:

如果应用程序是以jar文件的形式提供的,那么它的META-INF目录中就会有一个。

MANIFEST。MF文件。

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

set MAINCLASE=org . Apache . catalina . startup . bootstrap

以上述方式确定主类后,根据需要配置相应的VM参数和应用程序自己的参数,代码就会运行。然后,根据您想要了解的内容,设置断点并启动调试程序。

这些都是一般的步骤,具体到Tomcat,我们来讲一个具体的方法。

工程形式的调试

以Eclipse为例

首先,创建一个工程Java项目。

导入源文件,这里可以有以下几种方式:

全部抄进去。

作为链接源引入。(右键单击项目,然后在构建路径中选择链接源)

将Tomcat lib下已安装的jar文件添加到项目依赖项中,然后添加其他必需的jar文件,如ant.jar

设置主类

设置参数

单击调试,程序正在运行,然后开始调试。

在附加模式下调试

构建一个新项目并导入源代码。此时,可以在调试模式下启动Tomcat。为了在第一时间将代码附加到进程,有必要在jpda启动后设置自动暂停并等待应用程序连接。

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

设置JPDA _ OPTS=-agentlib : jdwp=TRANSPORT=% JPDA _ TRANSPORT %,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%

您可以直接将上面的红色内容更改为y,也可以先在命令行上进行设置。

然后执行命令。

catalina.bat jpda start

的默认连接端口是8000。

之后可以通过远程调试直接进行项目。

此时,您可以调试Tomcat的源代码。如果您想在启动时跟踪进程,可以在引导中添加断点并开始调试。

关于如何调试Tomcat源代码的问题的答案就分享到这里了,希望。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/138485.html

(0)

相关推荐

  • 四个象限口诀,三角函数的平方奇偶性的判断口诀

    技术四个象限口诀,三角函数的平方奇偶性的判断口诀“奇四个象限口诀、偶”指的是π/2的倍数的奇偶,“变与不变”指的是三角函数的名称的变化:“变”是指正弦变余弦,正切变余切。(反之亦然成立)“符号看象限”的含义是:把角α看做

    生活 2021年10月29日
  • 的输入输出格式化输入输出的示例代码

    技术IO之Formatted IO的示例代码小编给大家分享一下IO之Formatted IO的示例代码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Formatted I/O/* ANSI *//* w

    攻略 2021年12月22日
  • Centos下安装mysql命令怎么写

    技术Centos下安装mysql命令怎么写这篇文章主要为大家展示了“Centos下安装mysql命令怎么写”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Centos下安装my

    攻略 2021年11月15日
  • 过去的日子如什么仿写,匆匆第4段的仿写急!在线等

    技术过去的日子如什么仿写,匆匆第4段的仿写急!在线等1过去的日子如什么仿写、过去的日子如一块巧克力,不久就在嘴里化了;如一滴水,在阳光的照耀下蒸发了;
    如一个细胞,很快就死去了;如一片雪花,被阳光照化了。
    2、在这烟花缤

    生活 2021年10月25日
  • 手把手带你刷二叉树,第一期)

    技术手把手带你刷二叉树,第一期) 手把手带你刷二叉树(第一期)https://labuladong.gitee.io/algo/2/18/21/读完本文,你不仅学会了算法套路,还可以顺便去 LeetCo

    礼包 2021年11月12日
  • 追溯系统数据怎么做(大数据溯源)

    技术大数据中如何实现数据的高效追溯这篇文章给大家介绍大数据中如何实现数据的高效追溯,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。如何基于GES图数据库追溯服务的实现和优化。“一分钟,我要这个人的全部

    攻略 2021年12月23日