拆解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做了引用。

目录
相关文章
|
5月前
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件
|
7月前
|
Java 应用服务中间件 Maven
IDEA创建一个Servlet项目(tomcat10)
IDEA创建一个Servlet项目(tomcat10)
334 1
|
8月前
|
Java
IDEA debug HashMap源码的心得
IDEA debug HashMap源码的心得
79 0
|
6月前
|
应用服务中间件
入职必会-开发环境搭建23-IDEA配置Tomcat
IDEA配置Tomcat分为两部分: 1. IDEA集成本地Tomcat 2. IDEA中使用Tomcat部署Web项目 在配置IntelliJ IDEA中的Tomcat时,首先需要打开IDEA,选择菜单中的Run -> Edit Configurations,在左侧菜单中找到+并点击,然后选择Tomcat Server下的Local(注意不要选择错了,下方还有个TomEE Server,不是选这个)。接下来,输入一个自定义的名字作为Tomcat的配置名称,点击Configure...配置Tomcat的安装路径。这样IDEA就配置好了Tomcat。
|
5月前
|
应用服务中间件
2022年最新最详细在IDEA中配置Tomcat(含有详细图解过程)、建立使用IEDA建立一个Web项目的案例
这篇文章提供了在IntelliJ IDEA中配置Tomcat服务器的详细步骤,包括添加Tomcat Server、选择安装路径、添加项目Artifact,以及创建和展示Web项目的流程。
|
7月前
|
Java 应用服务中间件 数据库
SSM使用IDEA整合视频及源码配置文件
SSM使用IDEA整合视频及源码配置文件
|
7月前
|
XML Java 应用服务中间件
Tomcat项目创建 以及 在IDEA当中集成Tomcat
Tomcat项目创建 以及 在IDEA当中集成Tomcat
idea查看源码的方法,Ctrl + 鼠标左键 可以查看源码
idea查看源码的方法,Ctrl + 鼠标左键 可以查看源码
|
7月前
|
移动开发 小程序 关系型数据库
java+ IDEA+ Uniapp+ mysql医院3D智能导诊系统源码
这是一个基于Java、IDEA、Uniapp和MySQL的医院3D智能导诊系统,采用Springboot后端框架和Redis、Mybatis Plus、RocketMQ等技术。系统通过对话式交互,精准推荐就诊科室,解决患者挂号困扰。它还具备智能预问诊功能,提升诊疗效率和准确性,确保医生能快速了解患者详情。此系统还支持小程序和H5,方便患者使用。
79 0
|
7月前
|
应用服务中间件