专栏首页java技术大本营tomcat学习|通过tomcat源码启动web项目

tomcat学习|通过tomcat源码启动web项目

学习背景

上一波,我们学习了tomcat 中主要接口的方法及关系: https://www.lixiang.red/articles/2019/08/12/1565622240937.html 实际上源码只通过看,也差不多只能看到这个地步了,后面就一直看的话,就很容易乱,有句话说:实践出真知 今天我们就一起通过tomcat源码,来启动我们日常的web应用,在中间,可以debug , 可以更好的看到整个过程

准备web应用

可以在https://start.spring.io/ 去快速生成一个web应用

然后生成项目,可得到如下目录结构:

我们用ide打开,去添加一个controller ,并打成war包备用

然后把war包丢到tomcat的webapp目录下面

tomcat的配置

导入jar包到idea中

ant相关的配置可参考这篇文章 https://www.lixiang.red/articles/2019/08/04/1564907616303.html 执行deploy命令之后,我们可以在tomcat-build-libs 目录中看到拉下的jar包

然后把这些包导入到idea中 先打开工程设置面板

点击添加jar包的按钮

找到对应tomcat-build-libs 目录,全选下面的所有文件,包括我们自己下载的ant.jar ,最后点击OK

修改tomcat 本身一些配置

  1. 删掉tomcat/webapps/examples 目录, 这里面都是一些示例,在源码编译中会报错,干扰我们的正常启动,可以先删掉
  2. 修改tomcat的端口号(可选)在 tomcat/conf/server.xml中进行修改,就像我们平时部署应用一样

启动tomcat 并跟踪

以前我们有聊过,在用shell 脚本启动tomcat时,是启动的Bootstrap.java这个类,并且跟上了参数start

所以,我们需要idea的启动参数里面,也要加上start

打断点: 可以在我们前面讲的启动入口入,也就是main函数处打断点做最开始的追踪

放过断点继续运行一会,可以看到spring启动的界面

最后我们在浏览器中访问下我们写的controller,能看到相应的返回

本文分享自微信公众号 - java技术大本营(java-ideashare),作者:微笑的小小刀

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java每日一练(19_03_28)

    The sting of a reproach,is the truth of it.

    微笑的小小刀
  • tomcat学习|tomcat源码结构

    提到tomcat,相信大家都不陌生,只要是搞web开发的,老师总会让我们把应用打成war包,然后再丢到tomcat的webapp里面,然后就可以用ip:port...

    微笑的小小刀
  • tomcat学习|tomcat的启动过程

    小刀博客: https://www.lixiang.red 小刀公众号: 程序员学习大本营

    微笑的小小刀
  • Web基础配置篇(三): tomcat的配置及使用

    tomcat,大家应该都知道是啥,servlet的Web容器而已,遵守servlet规范的JavaEE服务器。我们通常用tomcat来部署war包来做应用服务器...

    品茗IT
  • 第九章 tomcat配置

    上一章,我们介绍了apache服务的部署,其中我们介绍过网页开发所用到的语言,以asp、jsp、php为主,我们已经演示过php页面的使用。本章我们将演示jsp...

    晓天
  • Ubuntu下配置JavaWeb开发环境

    还是JSP环境,最近上了两节JSP的课了,基本上对于JavWeb的基础介绍也说的差不多了,按照课程安排应该是要进入到页面基础内容的阶段了,所以差不多也要把JSP...

    李郑
  • SpringBoot解决内、外tomcat部署兼容问题

    我们在使用springBoot开发的过程中出于方便,都会选择使用本地类Application中的main方法启动服务,即可实现本地的调试,十分的...

    Java深度编程
  • CentOS下部署JDK+Tomcat8

    1、Tomcat需要JDK环境,参考之前的文章CentOS6下安装Java JDK8,提前安装好JDK环境

    yuanfan2012
  • Tomcat 5的新特性和架构变化

    Tomcat 5的新特性和架构变化 1、支持servlet 2.4 和jsp 2.0; 2、重写了http mapper 模块,从Catalina代码中抽出来...

    田春峰-JCJC错别字检测
  • Linux 环境定时重启 tomcat

    亲手搭建的博客系统经常会宕机,一直想着定时检测tomcat服务挂掉之后进行重启操作。昨天终于有时间,就把这个事情做了一下,最终可以正常工作。本篇就记录一下我解决...

    不安分的猿人

扫码关注云+社区

领取腾讯云代金券