怎样调试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)

相关推荐

  • DQL-1.开始-快速开始指南

    技术DQL-1.开始-快速开始指南 DQL-1.开始-快速开始指南注意:本指南是针对Dgraph的强大查询语言DQL的,DQL是Facebook创建的查询语言GraphQL的变体。您可以从dgraph.

    礼包 2021年12月7日
  • 如何配置Hibernate

    技术如何配置Hibernate本篇内容主要讲解“如何配置Hibernate”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何配置Hibernate”吧!当我们有了一个持久化类

    攻略 2021年12月4日
  • jstack怎么分析线程状态(jstack查看线程卡住情况)

    技术如何通过top 和 jstack 确定哪些线程耗尽CPU本篇文章给大家分享的是有关如何通过top 和 jstack 确定哪些线程耗尽CPU,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,

    攻略 2021年12月13日
  • 铁的质量分数,四氧化三铁的原子质量分数

    技术铁的质量分数,四氧化三铁的原子质量分数解答(1)相对分子质量=相对原子质量与相应原子个数的乘积和铁的质量分数,则四氧化三铁的相对分子质量=56×3+16×4=232;(2)某元素质量分数═该原子的相对原子质量×该原子

    生活 2021年10月29日
  • 动态初始化和静态初始化的区别(如何解决项目启动时初始化资源)

    技术中项目启动时实现初始化方法的加载参数是什么中项目启动时实现初始化方法的加载参数是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。spr

    攻略 2021年12月21日
  • 牛客网面试题

    技术牛客网面试题 牛客网面试题目录
    一、JAVA
    二、计算机网络
    三、操作系统
    四、项目
    五、数据库
    第六部分 框架
    第七部分 设计模式
    第八部分 数据结构和算法
    第九部分 Linux
    ########

    礼包 2021年12月20日