前言

上篇文章中一直没搞定的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. jackson学习+CVE-2019-12086漏洞分析

    jackson和fastjson差不多,都是用来更方便的处理json 国人用fastjson,老外用jackson/gson比较多 环境搭建: pom.xml: <dependency> ...

  2. Mysql索引数据结构为什么是B+树?

    目录 Mysql索引数据结构 二叉树 红黑树 B-Tree B+Tree Mysql索引数据结构 下面列举了常见的数据结构 二叉树 红黑树 Hash表 B-Tree(B树) Select * from ...

  3. 201871030132-熊文婷 实验二 个人项目―《D{0-1}KP问题》项目报告

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs.com/nwnu-dai ...

  4. 回文词——线性dp

    #include<iostream> #include<cstdio> using namespace std; int n,f[5002][5002]; char str1[ ...

  5. MindInsight训练可视整体设计介绍

    MindInsight训练可视整体设计介绍 MindInsight是MindSpore的可视化调试调优组件.通过MindInsight可以完成训练可视.性能调优.精度调优等任务. 训练可视功能主要包括 ...

  6. GVS案例分享|乘新时代姑苏舫号,体验匠心智能控制

    水,是苏州的灵魂,串起苏州的古与今.动与静.金鸡湖景区位于苏州工业园区,总面积11.5平方公里,其中水域面积7.4平方公里. 新时代姑苏舫号,是金鸡湖景区极具苏式特征且规格超高的游览船型.船体分为上下 ...

  7. oracle审计表迁移

    ============ oracle审计表迁移到新的表空间 ============ 前言 oracle数据库开启审计功能后会占用大量的SYSTEM系统表空间,要么定时对审计表进行清理,要么对系统表 ...

  8. 阿里面试挂了,就因为面试官说我Spring 事务管理(器)不熟练?

    前言 事务管理,一个被说烂的也被看烂的话题,还是八股文中的基础股之一.但除了八股文中需要熟读并背诵的那些个传播行为之外,背后的"为什么"和核心原理更为重要. ​ 写这篇文章之前,我 ...

  9. 使用 Docker 部署 Node 应用 - 镜像文件尺寸的优化

    前面 使用 Docker 部署 Node 应用 一文中完成了镜像的创建和运行,不过生成的镜像还有些粗糙,需要进一步优化. 镜像的优化 通过 docker images 看到简单的一个 node 服务端 ...

  10. [Azure DevOps] 如何使用任务组

    1. 使用 PowerShell 脚本 在上一篇文章中我们学会了怎么使用扩展在编译前实时更改版本号.有些情况下我们希望不适用扩展,例如喜欢发明轮子,或者根本没有安装扩展的权限.这时候我们可以自己写 P ...