Tomcat源码--IDEA编译和启动

909 阅读1分钟

「时光不负,创作不停,本文正在参加2021年终总结征文大赛

准备工作

  1. tomcat下载地址 可以根据自己需要自行下载对应版本(本文以Tomcat 8为例) 1639377494(1).png

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

1639377146(1).jpg

  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 1639378255(1).png

出现下图所示表示编译完成 1639376235(1).png

编译过程中会下载依赖包,对应存在工程目录结构中多出的tomcat-build-libs文件夹下 1639379089(1).png

  1. 手动将上面下载的依赖包,添加到项目依赖中 1639379728(1).png

运行

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

  2. 启动报错,如图所示 1639383002(1).png 删除webapps下examples 文件夹 1639382963(1).png

3.访问Tomcat页面,localhost:8080,请求报错 1639383133(1).png

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

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

1639383635(1).png

  1. 重新启动,完美

1639383674(1).png

秃头操作总结

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