前言

上篇文章中一直没搞定的tomcat源码调试终于搞明白了,p神的代码审计星球里竟然有,真的好b( ̄▽ ̄)d ,写一下过程,还有p神没提到的小坑

准备阶段

1.去官网下东西:https://tomcat.apache.org/download-80.cgi

下三个东西一会都用得上

2.idea新建项目,选择maven构建的

其它名字啥的随便填,如果你第一次搞,应该创建完和我一样

并没有index.jsp和web.xml等,这很正常不要急

排坑

配置tomcat启动

如果没找到tomcat记得点哪个30more

到这里网上教程一般都说直接进deployment添加artifacts,但是你会发现没有

这时点fix,在加号里添加一个web application:exploded

点击ok后回到deployment,你会看到这样

然后退出去点击run,不出意外的话,应该是这样

可以看到src目录是有了,但是有三个报错,浏览器并没有出现hello world

此时的问题可能是由于idea版本导致的,你并不一定遇到,如果你没出现问题,请直接看我下面的步骤。

我的解决办法是关闭项目重新打开

删除掉之前的artifacts,并且新添加一个,此时会出现from modules的选项,点击它,选择你的项目,此时才可正常运行

原因分析:我们最早创建的artifacts并没有挂载到项目上,也没有出现out的编译文件夹等内容,重启后识别到了调式项目,重新创建了正确的artifact

正式调试

在index.jsp中写入out.println,当然你们应该报错了。

这里可以从pom里添加,但是我们选择另一种方式,因为我们要调试tomcat源码

在此点击这个按钮,然后在lib里把tomcat-lib里的所有jar包加进去

此时就不报错了,如果报错请重启项目

然后我们移动到此处会显示它引用的jar

当然这个需要设置,在setting的这个位置,把它勾选上

此时下断点,debug模式启动

随便点一个流程,就能看到反编译代码了

完善debug

这样我们能看到的是class的反编译代码,不如直接看源码好,而且说不定会有丢失

我们回到lib添加的位置,加入之前我们下好的源码,这里注意是在右侧点+号

添加完后是这样的

此时我们可能会遇到一个报错,说反编译代码和源码配不上(我也不知道有啥影响,但是p神教了解决方案就加上吧)

此时我们继续添加一个包,deployer中juli这个jar包

之后报错就消失了

总结:p神的这篇文章真是帮了大忙,同时也让我更熟悉了idea各种依赖的模式配置位置,付费知识的一颗明星,只需199,良心中的良心。不说了继续去星球学java反序列化了。

idea本地调式tomcat源码的更多相关文章

  1. 将tomcat源码导入eclipse

    前言: 写完了socket小应用的原始版本,中间还有好多预想的功能没有实现,在写的过程中也发现了很多问题.因为前面有粗略的看过tomcat实现原理解析,知道tomcat其实也是纯java写的web服务 ...

  2. Tomcat源码学习

    Tomcat源码学习(一) 转自:http://carllgc.blog.ccidnet.com/blog-htm-do-showone-uid-4092-type-blog-itemid-26309 ...

  3. Tomcat源码分析——请求原理分析(上)

    前言 谈起Tomcat的诞生,最早可以追溯到1995年.近20年来,Tomcat始终是使用最广泛的Web服务器,由于其使用Java语言开发,所以广为Java程序员所熟悉.很多人早期的J2EE项目,由程 ...

  4. Tomcat 源码分析(转)

    本文转自:http://blog.csdn.net/haitao111313/article/category/1179996 Tomcat源码分析(一)--服务启动 1. Tomcat主要有两个组件 ...

  5. Tomcat源码分析一:编译Tomcat源码

    Tomcat源码分析一:编译Tomcat源码 1 内容介绍 在之前的<Servlet与Tomcat运行示例>一文中,给大家带来如何在Tomcat中部署Servlet应用的相关步骤,本文将就 ...

  6. [Tomcat源码分析] Eclipse中搭建Apache Tomcat源码调试环境

    网上很多文章都推荐使用Ant下载编译,但本地实践中屡屡失败,无法下载. 后来参考 https://blog.csdn.net/xiongyouqiang/article/details/7894107 ...

  7. 【Tomcat 源码系列】源码构建 Tomcat

    一,前言 这篇博客写于 12 月 12 日,从 github[1] 上 fork 了一份 tomcat 的源代码,clone 到了本地.最近想把 tomcat 的源代码分析一下,寒假的时候有完整的时间 ...

  8. svn工具安装下载Tomcat源码以及导入eclipse

    安装 1.svn下载地址 https://tortoisesvn.net/downloads.html 2.语言包下载 3.先安装svn,在直接安装语言包 4.桌面右键可以看到相关svn信息 下载To ...

  9. Tomcat源码导入eclipse的步骤

    Tomcat源码导入eclipse 一.下载源码 1.  进入Apache 官网:http://tomcat.apache.org/ 2.  在左边侧选择要下载的源码的版本. 3.  或者直接通过Ar ...

随机推荐

  1. 西门子S7系列以太网通讯处理器功能介绍

    北京华科远创科技有限研发的远创智控型号ETH-YC模块适用于西门子S7-200/S7-300/S7-400.SMART S7-200.西门子数控840D.840DSL.合信.亿维PLC的PPI/MPI ...

  2. react-redux 源码浅析

    react-redux 版本号 7.2.3 react-redux 依赖的库: "dependencies": { "@babel/runtime": &quo ...

  3. 2. Servlet3.0注解方式 @WebServlet

    web.xml配置还是比较麻烦,这次使用注解方式 编写servlet import javax.servlet.ServletException; import javax.servlet.annot ...

  4. 通过 DLPack 构建跨框架深度学习编译器

    通过 DLPack 构建跨框架深度学习编译器 深度学习框架,如Tensorflow, PyTorch, and ApacheMxNet,快速原型化和部署深度学习模型提供了强大的工具箱.不幸的是,易用性 ...

  5. OpenCV读写图像文件解析

    OpenCV读写图像文件解析 imdecode 从内存中的缓冲区读取图像. C++:Mat imdecode(InputArray buf, int flags) C++:Mat imdecode(I ...

  6. 我进金山wps啦!

    成功进入金山wps暑期精英训练营,希望能够学到很多知识,写这篇文章纪念一下

  7. linux用户组添加和权限的设置

    1.useradd  添加用户 useradd [选项]... 用户名 -u 用户id.-d 家目录路径.-s 登录Shell(解释器).-G 附加组 /sbin/nologin  :禁止用户登陆系统 ...

  8. 【NX二次开发】Block UI 线性尺寸

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...

  9. 【VBA】日期时间

    当前日期: Sub 测试() Debug.Print Date End Sub 当前时间: Sub 测试() Debug.Print Date End Sub 几月: Sub 测试() Debug.P ...

  10. 【VBA】读取另一个excel工作簿中的内容

    后台打开工作簿读取内容源码: Sub subOpenWorkbook() Dim datebase As String datebase = "... ....xlsx" Appl ...