Tomcat源码--IDEA编译和启动

准备工作

  1. tomcat下载地址
    可以根据自己需要自行下载对应版本(本文以Tomcat 8为例)
    Tomcat源码--IDEA编译和启动

  2. ant下载地址,根据各自环境下载不同的ant包,解压。

Tomcat源码--IDEA编译和启动

  1. 配置ant环境变量
  • ANT_HOME : C:\apache-ant-1.10.12-bin\apache-ant-1.10.12(ant下载解压目录)
  • path : C:\apache-ant-1.10.12-bin\apache-ant-1.10.12\bin

IDEA编译

  1. 修改tomcat下,build.properties.default文件中base.path地址
base.path=${basedir}/tomcat-build-libs
  1. 在IDEA当前目录下执行 ant ide-intellij命令进行编译

注意:配置ant环境变量后需要重启IDEA
Tomcat源码--IDEA编译和启动

出现下图所示表示编译完成
Tomcat源码--IDEA编译和启动

编译过程中会下载依赖包,对应存在工程目录结构中多出的tomcat-build-libs文件夹下
Tomcat源码--IDEA编译和启动

  1. 手动将上面下载的依赖包,添加到项目依赖中
    Tomcat源码--IDEA编译和启动

运行

  1. 找到tomcat启动类org.apache.catalina.startup.Bootstrap,运行main方法,出现如下乱码
    Tomcat源码--IDEA编译和启动
    添加启动参数 -Duser.language=en

  2. 启动报错,如图所示
    Tomcat源码--IDEA编译和启动
    删除webapps下examples 文件夹
    Tomcat源码--IDEA编译和启动

3.访问Tomcat页面,localhost:8080,请求报错
Tomcat源码--IDEA编译和启动

org.apache.catalina.startup.ContextConfig类中configureStart方法内添加

    context.addServletContainerInitializer(new JasperInitializer(), null);

Tomcat源码--IDEA编译和启动

  1. 重新启动,完美

Tomcat源码--IDEA编译和启动

秃头操作总结

在源码学习要有耐心,要细心,要有信心,很多时候不是说写的代码有问题,而是在不同的环境运行不同代码结果就不一致,这时候需要冷静下来,抽丝剥茧不放过一丝怀疑,多学习,多记录,多总结,多实践

上一篇:P10:如何使用Ant Design UI


下一篇:服务架构模型 + iptables 四表五链