拆解Tomcat10: (二) 在Idea中调试最新的Tomcat10源码(二)

简介: 拆解Tomcat10: (二) 在Idea中调试最新的Tomcat10源码

2.2 Build项目

点击Build按钮开始构建项目,会提示:“java: 程序包trailers不存在。”和“找不到符号 ResponseTrailers”,两个错误都出现在test文件夹。缺少的文件都在webapps/examples/WEB-INF/classes文件夹,


43.png

43.png

拷贝文件夹“webapps/examples/WEB-INF/classes/trailers”到“test”文件夹下。


拷贝文件“webapps/examples/WEB-INF/classes/util/CookieFilter.java”到“test/util”文件夹下。


此时再次Build不再出错。


3. 排查启动问题

找到文件“java/org/apache/catalina/startup/Bootstrap.java”,其中的main方法是Tomcat的启动起点。


Run这个方法,启动Tomcat,默认地址为“http://localhost:8080/“。


3.1 端口被占用

默认会监听8080端口,如图提示被占用,可以去“conf/server.xml”文件中修改:

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

3.2 提示Jsp相关的如下错误

44.png

修改“java/org/apache/catalina/startup/ContextConfig.java”文件,在configureStart方法中添加一行代码,位置如下面所示:

    protected synchronized void configureStart() {
        // 此处省略一部分代码
        webConfig();
        // 添加下面一行代码
        context.addServletContainerInitializer(new JasperInitializer(), null);
        if (!context.getIgnoreAnnotations()) {
            applicationAnnotationsConfig();
        }

再次启动,可以看到熟悉的页面了。

45.png

3.3 输出窗口提示找不到“XXXListener”

可以看到如下错误:

46.png

和2.2中遇到的错误类似,对应的文件还是存在于“webapps/examples/WEB-INF/classes”文件夹中:

47.png

而“webapps/examples/WEB-INF/web.xml”中对这几个Listener做了引用。

目录
相关文章
|
19天前
|
Java 应用服务中间件 Maven
IDEA创建一个Servlet项目(tomcat10)
IDEA创建一个Servlet项目(tomcat10)
26 1
|
2月前
|
SQL 存储 数据处理
实时计算 Flink版产品使用合集之idea本地调试,在哪里查看执行结果
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2月前
|
Java
IDEA debug HashMap源码的心得
IDEA debug HashMap源码的心得
29 0
|
26天前
|
安全 Java 应用服务中间件
避免Tomcat调试信息泄露的最佳实践
小米分享了团队解决网站敏感信息泄露问题的经历。在处理运行时错误时,Tomcat显示的调试信息可能泄露。尝试过使用Spring Boot的`ErrorAttributes`接口和修改Tomcat默认错误页面均未成功。最终,他们通过自定义错误页面并配置`application.yml`来隐藏敏感信息,成功解决了问题。这个方法推荐给其他开发者作为避免调试信息泄露的安全实践。
19 3
避免Tomcat调试信息泄露的最佳实践
|
20天前
IDEA之Stream表达式生成、调试
IDEA之Stream表达式生成、调试
14 1
|
21天前
|
Java 应用服务中间件 数据库
SSM使用IDEA整合视频及源码配置文件
SSM使用IDEA整合视频及源码配置文件
21 1
|
1月前
|
XML Java 应用服务中间件
Tomcat项目创建 以及 在IDEA当中集成Tomcat
Tomcat项目创建 以及 在IDEA当中集成Tomcat
idea查看源码的方法,Ctrl + 鼠标左键 可以查看源码
idea查看源码的方法,Ctrl + 鼠标左键 可以查看源码
|
1月前
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之如何在本地IDE(如IntelliJ IDEA)中配置MaxCompute (mc) 的任务和调试SQL
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
17天前
|
移动开发 小程序 关系型数据库
java+ IDEA+ Uniapp+ mysql医院3D智能导诊系统源码
这是一个基于Java、IDEA、Uniapp和MySQL的医院3D智能导诊系统,采用Springboot后端框架和Redis、Mybatis Plus、RocketMQ等技术。系统通过对话式交互,精准推荐就诊科室,解决患者挂号困扰。它还具备智能预问诊功能,提升诊疗效率和准确性,确保医生能快速了解患者详情。此系统还支持小程序和H5,方便患者使用。
21 0