tomcat各版本下载地址:

https://archive.apache.org/dist/tomcat/

下载8.0.11的tomcat src包并解压,一开始的我参照的tomcat源码里BUILDING.txt进行编译运行,

安装了ant,在编译的时候遇到ssl的如下报错

尝试了去修改tomcat的server.xml里的Connector,然而ant编译一直不成功。

最后发现其实下载的源码做个小改动就可以直接在IDE里进行运行调试了,完全不需要使用ant来编译

上面的问题如果有高手看到能帮忙解答下最好啦

1.在源码的解压目录里添加pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.apache.tomcat</groupId><artifactId>Tomcat8.0</artifactId><name>Tomcat8.0</name><version>8.0</version><build><finalName>Tomcat8.0</finalName><sourceDirectory>java</sourceDirectory><resources><resource><directory>java</directory></resource></resources><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><encoding>UTF-8</encoding><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.easymock</groupId><artifactId>easymock</artifactId><version>3.4</version></dependency><dependency><groupId>ant</groupId><artifactId>ant</artifactId><version>1.7.0</version></dependency><dependency><groupId>wsdl4j</groupId><artifactId>wsdl4j</artifactId><version>1.6.2</version></dependency><dependency><groupId>javax.xml</groupId><artifactId>jaxrpc</artifactId><version>1.1</version></dependency><dependency><groupId>org.eclipse.jdt.core.compiler</groupId><artifactId>ecj</artifactId><version>4.5.1</version></dependency></dependencies>
</project>

2.通过File-->Open将源码导入到idea中 

3.在源码目录下创建catalina-home目录,复制webapps和conf到该目录下

4.创建Application

5.启动tomcat

访问发现提示如下错误:

原因是我们直接启动org.apache.catalina.startup.Bootstrap的时候没有加载org.apache.jasper.servlet.JasperInitializer,从而无法编译JSP。解决办法是在tomcat的源码org.apache.catalina.startup.ContextConfig中手动将JSP解析器初始化:

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

这样就可以正常访问了

tomcat源码运行相关推荐

  1. Tomcat - 源码构建Tomcat 8.5.55 启动

    文章目录 官方地址 源码搭建分析 源码搭建步骤 (Maven管理) Step1. 新增maven管理文件 pom.xml Step2. 处理conf 和 webapps Step3. 导入IEDA 3 ...

  2. idea启动tomcat没有加载项目_震惊!我三步就搞定了 Tomcat 源码环境搭建!

    喜欢请点关注 引言 随着微服务的流行,轻量级的服务应用器也是跟着大火了.毕竟那些企业级的服务应用器部署搭建成本太高.并且springboot 自带的就是 tomcat 服务. 所以我们也有必要学习 t ...

  3. 将tomcat源码以maven方式运行

    前言 最近在分析tomcat的启动流程,虽然我们可以在idea中查看到tomcat的源代码,但是我们不能在上面做一些代码注释,这就会 非常的不方便,所以我们还是能在本地 运行一份源码,这样非常有利于我 ...

  4. Springboot源码分析之内嵌tomcat源码分析

    Springboot源码是内嵌tomcat的,这个和完整的tomcat还是不同. 内嵌tomcat的源码在tomcat-embed-core等3个jar包里 展开tomcat-embed-core的c ...

  5. Eclipse 导入 Tomcat 源码

    我的环境:Win10,Eclipse 4.8.0 Photon,JDK 10.0.2 1.下载Tomcat源码 我下载的是:apache-tomcat-9.0.12-src.zip 下载地址:http ...

  6. Tomcat源码分析--转

    一.架构 下面谈谈我对Tomcat架构的理解 总体架构: 1.面向组件架构 2.基于JMX 3.事件侦听 1)面向组件架构 tomcat代码看似很庞大,但从结构上看却很清晰和简单,它主要由一堆组件组成 ...

  7. java tomcat源码_详解Tomcat系列(一)-从源码分析Tomcat的启动

    在整个Tomcat系列文章讲解之前, 我想说的是虽然整个Tomcat体系比较复杂, 但是Tomcat中的代码并不难读, 只要认真花点功夫, 一定能啃下来. 由于篇幅的原因, 很难把Tomcat所有的知 ...

  8. Tomcat源码调试环境搭建

    我们一般都是为了解决某个问题,才去看源码的.Java体系就是这点好处,源码唾手可得.遇到问题,最后的解决方法总是可以从源码中找到. 参考了网上的文章,过程整理如下: 1. 下载和导入 官网下载编译好的 ...

  9. 探秘Tomcat(一)——Myeclipse中导入Tomcat源码

    前言:有的时候自己不知道自己是井底之蛙,这并没有什么可怕的,因为你只要蜷缩在方寸之间的井里,无数次的生活轨迹无非最终归结还是一个圆形:但是可怕的是有一天你不得不从井里跳出来生活,需要重新审视井以外的生 ...

最新文章

  1. JavaScript权威设计--JavaScript词法结构(简要学习笔记二)
  2. 小鱼易连电脑版_揭秘:为什么win10电脑越用越卡,本质问题是什么?
  3. access计算机二级改工号,Access新手来看:如何更改表/窗体/报表...得名字
  4. 宝塔面板修改端口号无法登陆解决方案
  5. 免费搭建一个云音乐网站
  6. Holt-Winters-季节性预测算法
  7. QtQuick 技巧 2
  8. 抽屉新热榜html源码,利用scrapy获取抽屉新热榜的标题和内容以及新闻地址保存到本地...
  9. 网络实用技术--登录--第三方登录--百度第三方登录
  10. Python----列表
  11. UVALive 4850 Installations——思维
  12. JavaBean为什么需要序列化?
  13. 【jqprint打印】js两种超简单的打印方法
  14. php点击切换图片的底部导航,如何优雅地使用BottomNavigationView实现底部导航栏+fragment切换效果...
  15. 10款最佳跨浏览器测试工具,建议收藏
  16. 三星正在研发智能戒指,智能戒指当然少不了Find My功能
  17. 手动刷入Android 4.4.1 KOT49E OTA更新包
  18. 太稳了!2020年益丰大药房又开1239家,营收高达131亿!
  19. css区分ie8/ie9/ie10/ie11 chrome firefox的代码
  20. Aerospike-Java

热门文章

  1. plsql(轻量版)_记录类型1
  2. python怎么运行_程序员大牛讲解,Python程序的执行原理
  3. python解压打开文件过多_自动解压大量压缩文件 Python 脚本 | 学步园
  4. autoflowchart软件使用步骤_编程怎么入门,7个步骤带你飞, 网友:上车!
  5. 【小题目】判断一个数字是否是3的倍数
  6. 【Todo】Zookeeper系列文章
  7. 点击事件触发选择提示框
  8. Ubuntu连接以太网时显示“设备未托管”的解决办法
  9. 在Scrollview中使用AutoLayout
  10. find命令的技巧和一些例子