PS: 多图预警
在开始阅读源码之前,我们需要先构建一个环境,这样才能便于我们对源码进行调试,具体源码我们可以到官网进行下载(这里我以8.5.63版本为例)。

下载并解压 apache-tomcat-8.5.63-src.zip。

然后进入 apache-tomcat-8.5.63-src 目录,新增一个 pom.xml 文件
通过IDEA引入项目

打开项目之后,全局搜索一下 main 方法,找到 tomcat 的入口


项目启动成功了,控制台输出的信息有乱码,暂时不管,我们看看能不能访问到首页。

找到最开始出现乱码的地方,选中这个类名,双击 Shift 键查找并跳转到对应方法处。


打个断点,然后开始 ,先一层层进入,跟踪下看看首次出现乱码的地方是在哪

在这里我们可以看到,通过 方法得到的对象是有乱码的情况,在这里打上一个断点,然后继续深入
先一层层进入,跟踪下看看首次出现乱码的地方是在哪
这是一个抽象方法,点击 按钮跳转进到对应的具体实现方法中

在这个方法中我们可以看到他实际上是在一个 中根据传入的 来获取对应的 ,选择该代码块,按 进行查看

发现起因了,在这个 中存储的 都是乱码的,才会导致后面调用到的地方显示的都是乱码

起因发现了,那么我们就得来找一下这个 对象的 操作是在哪一处进行的,才好真正的解决问题。
选择 按 查找一下,找到一下两个方法,都给他打上断点,然后重启项目,看看具体是由哪个方法来实现的。

在这里我们可以看到他是通过输入流的形式来实现的,在下方的 窗口中可以看到 加载出来的数据已经是乱码的了

在 窗口点击上一栈帧,找到当前方法的调用入口,回溯上去找到 的来源



按照上面给出的路径找到对应的文件,可以看到里面是 编码的中文字符。

文件编码没有问题,那么问题就是出在 这个方法上了,这时候我们想对他进行一个修改,发现该类是锁定状态,无法修改,只能看不能碰这有点难度呀~
我们还得重新来一遍,看看这个配置信息再哪个可编辑的类中有使用,然后再进行修改
我们可以看到再 这个类中有一个获取的方法,再往下走就是加锁的类了,那么我们尝试着在这一层对该结果进行编码转换,看看效果如何






跳转到对应位置, 定位到调用的地方,在这里可以看到 方法中有具体的一些信息参数,我们用老方法对这 这个参数修改一下看




根据页面的提示找到 类的 方法,逐行查看,找到出错的地方

看到这里有个 方法用来获取信息的,跳进来看一下,果然是这里,找到地方了,直接办他!



导致页面显示500状态码的原因是 源码中 jsp 引擎 没有被初始化,从而无法编译处理 jsp (以为 jsp 是需要被转换成 servlet 进一步编译处理的),我们只需要在 的源码 类的 方法中把该引擎进行初始化即可,代码如下:


到此这篇junit5下载(junit-platform-commons)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/38707.html