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

2bfc2e947d0548c984b62eb0bd9b5154.gif

喜欢请点关注

099cd5b183a84f3266d75ff4e2f078fb.gif

引言

93ece6aba701cd36b4e8268b5f655907.png

随着微服务的流行,轻量级的服务应用器也是跟着大火了。毕竟那些企业级的服务应用器部署搭建成本太高。并且springboot 自带的就是 tomcat 服务。

所以我们也有必要学习 tomcat 的相关知识啦,我们在项目中也用的很多,但是我们往往只是用他,没有深入的了解,但这样对我们来说是不够的的。

所以这里就来三步教会大家搭建一个 tomcat 源码运行环境,让大家打开深入了解 tomcat 的大门,迈向人生的巅峰~~~

727f07b81cccec7aab00fd8529d1c11d.png
image-20200627101159036

下载源代码

2fec6797a6277b5e8015a5faaa0cfc2e.png想要构建源代码,当然需要下载源代码啦。我这里用的是8.5.50 大家可以去官网上下载。也可以在公众号后台回复 “tomcat 源码” 获取。

下载好之后,解压如下:

e008c758d93141304c2e318f3ffc6bb2.png
image-20200627103103808

我们创建一个resource 目录,将conf 目录和 webapps 目录放到 resource 目录下。

0b72ce10bd0b99b3b7a40f8337be8d80.png
image-20200627103354924

创建 pom.xml

6c3f7f7e39f8ab32c9172928e06667ed.png

在解压的根目录创建一个pom.xml 文件,说到底 tomcat 底层还是 java 实现的。是一个maven 工程,所以我们创建一个pom.xml.

cf947386fe7a499bb13c8a088ca260c5.png
image-20200627103606260

内容如下:

<?xml version="1.0" encoding="UTF-8"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.apache.tomcat apache-tomcat-8.5.50-src Tomcat8.5 8.5   Tomcat8.5 java   java      org.apache.maven.plugins maven-compiler-plugin 3.1  UTF-8 8 8        org.easymock easymock 3.4   ant ant 1.7.0   wsdl4j wsdl4j 1.6.2   javax.xml jaxrpc 1.1   org.eclipse.jdt.core.compiler ecj 4.5.1   javax.xml.soap javax.xml.soap-api 1.4.0  

导入 IDEA

077db08d4edceb3781b2165c7d804909.png

接下来我们直接在 idea 中导入 tomcat 项目。导入完成后,还需要做一些配置。我们选择 Bootstrap 为启动类。

fad425b17b34f28f191e6484d1ad2a6b.png
image-20200627104257832

并且给启动类 Bootstrap 配置 VM 参数,因为 tomcat 源码运⾏也需要加载配置⽂件等。

-Dcatalina.home=E:/IdeaProjects/apache-tomcat-8.5.50-src/resource-Dcatalina.base=E:/IdeaProjects/apache-tomcat-8.5.50-src/resource-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.util.logging.config.file=E:/IdeaProjects/apache-tomcat-8.5.50-src/resource/conf/logging.properties

这里的绝对路径换成你们电脑的位置。

测试

1154f7c84bb194bd6adf02fe0c48b0aa.png经过上面三步,其实 tomcat 的运行环境就搭建起来啦。我们点击运行一下。

1f4eb0f02bc2beb7014bb9534e7c310b.png
image-20200627104720244

可以看到已经启动成功了,我们浏览器上看下。输入:

localhost:8080
9b1c275b255520ac29b51236471ef210.png
image-20200627104828079

什么鬼?报错啦?翻车啦?不存在的。

901a2568e3da9eca28a1e3971aa9c176.png
image-20200627104930351

这是因为我们没有初始化jsp 解析引擎,所以需要我们手动初始化一下,怎么做呢?

找到  ContextConfig 的 configureStart 方法。

在 webConfig(); 后面加上:

context.addServletContainerInitializer(new JasperInitializer(),null);
e3c53a9670cf0bcde5c107d9ec171c83.png
image-20200627105205759

然后我们再来启动下试试。

bdaddf8d98e3587fd2fc08ac63ce9d47.png
image-20200627105413285

完美!!!

fd85db696d16ff692a1bd13ecce1909d.png
image-20200627105517675

总结

想着以为很难,做着其实发现也不过尔尔。所以大家要勇于付诸实践才行哟~~~

如果您觉得好看,记得给我点个在看喔!!!

如果您觉得好看,记得给我点个在看喔!!!

如果您觉得好看,记得给我点个在看喔!!!

06c6971172553f6f8dff7e390e7c1b62.png

48495574a85e2a14492fe5c01971598d.png你点的每个好看,我都认真当成了喜欢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云服务器装哪些版本的系统好,云服务器按装什么系统好

云服务器按装什么系统好 内容精选换一换云耀云服务器(Hyper Elastic Cloud Server&#xff0c;HECS)是可以快速搭建简单应用的新一代云服务器&#xff0c;具备独立、完整的操作系统和网络功能。提供快速应用部署和简易的管理能力&#xff0c;适用于网站搭建、开发环境等低负载应…

python正则匹配括号内任意字符_Python正则表达式:字符集、限制范围和否定

1.字符集虽然句点可以匹配任意符号&#xff0c;但是如果需要匹配某些特定字符&#xff0c;可以使用方括号([])。方括号的正则表达式能够匹配方括号内包含的任意字符。下列为一些示例&#xff1a;正则表达式1:b[aeiu]其匹配的字符串是bat、bet、bit、but正则表达式2:[er][23][dp…

mysql to data_mysql str_to_date 字符串转换为日期

1.mysql日期和字符相互转换方法date_format(date,’%Y-%m-%d’) ————–>oracle中的to_char();str_to_date(date,’%Y-%m-%d’) ————–>oracle中的to_date();%Y&#xff1a;代表4位的年份%y&#xff1a;代表2为的年份%m&#xff1a;代表月, 格式为(01……12)%c&am…

java 加密_Java版SMS4加密解密算法

特别说明&#xff1a;该专栏文章均来源自微信公众号《大数据实战演练》&#xff0c;欢迎关注&#xff01;前言最近工作中需要实现HBase自定义扩展sms4加密&#xff0c;今天就先来说一下Java版的SMS4加密解密算法的具体实现。一、概述1.1 基本概念本算法是一个分组算法&#xff…

mysql触发器求属性和_MySQL触发器demo

MySQL触发器示例0写在之前&#xff1a;最近在带浙大本科生的数据库系统的上机课&#xff0c;我手里拿到的教学文档非常的老&#xff0c;本人及不习惯老文档里的sql server的操作&#xff0c;就让大家安装的MySQL&#xff0c;这就有了个问题&#xff1a;MySQL上很多SQLserver的操…

监控mysql数据库里的数据_有谁知道哪种软件可以监控mysql数据库上执行的数据脚本吗?...

LOG4j可以配置log4j.rootLoggerDEBUG, stdoutlog4j.appender.stdoutorg.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layoutorg.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern%c{1} - %m%nlog4j.logger.java.sql.PreparedStatementDEBUGl…

将dll制作成控件_全国首例将“影视作品”制作成“网络图片集”方式侵权案宣判...

最早知道“图解电影”是在百度贴吧&#xff0c;以前贴吧会有很多以截取电影主要剧情截图&#xff0c;介绍电影故事梗概的推荐电影形式&#xff0c;目前也有很多短视频平台和视频平台&#xff0c;推出电影主要内容的剪辑片段&#xff0c;那么&#xff0c;以这样的形式接受一部电…

阿里云 ecs mysql搭建_使用ECS和mysql搭建mysql服务器-阿里云开发者社区

一、首先得在阿里云等云主机上申请两台主机二、现在连上去安装mysql1、通过安装源将mysql下载下来[rootiz2ze2llim71y07x3numlbz ~]# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm--2018-03-26 16:52:00-- https://dev.mysql.com/get/mysql57-…

为什么python提示没有clock_python – 为什么time.clock比time.time给出更长的时间?

我使用time.clock和time.time在Ubuntu上定时了一段python代码&#xff1a;clock elapsed time: 8.770 stime elapsed time: 1.869 s我知道time.time使用系统时间和time.clock使用处理器时钟.当time.time给出比time.clock更长的经过时间时,这对我来说是有意义的&#xff1a;处理…

kalman滤波在雷达目标跟踪中的应用_简述Automotive radar中的多目标跟踪处理

毫米波雷达在目前的先进辅助驾驶&#xff08;ADAS&#xff09;中的应用主要体现在自适应巡航控制&#xff08;Adaptive Cruise Control&#xff0c;ACC&#xff09;,预碰撞&#xff08;PreCrash&#xff09;,泊车辅助&#xff08;Parking Aid&#xff09;,变道辅助&#xff08;…

oracle 拼接多个列_ORACLE实现类似mysql的find_in_set

在程序开发的过程中有很多的场景都会使用一个字段保存多个信息并且使用符号分隔&#xff0c;比如写一篇文章&#xff0c;保存了所有赞赏人员的ID。在一般的应用中除了保存外&#xff0c;还需要对此字段进行一些搜索&#xff0c;如站点中搜索所有我赞赏的文章。下面我们就来讲一…

放大缩小保证div对齐_NFS Write IO 不对齐深度分析

导读&#xff1a;NFSClient 对大多数的应用写入没有做对齐优化&#xff0c;本文根据 IO 不对齐的原因给出了若干实践建议。作者 | 裴晓辉背景最近团队小伙伴弗曼统计了线上用户数据写入对齐情况&#xff0c;通过统计数据发现了一个有趣的现象: 用户写入请求中近 70% 的数据块 4…

MySQL+for+Mac下载_MySQL For mac

MySQL For Mac官方版是一款可以在苹果电脑MAC OS平台上使用的多线程的、结构化查询语言(SQL)数据库服务器&#xff0c;SQL在世界上是最流行的数据库语言,MySQL For Mac最新版的执行性能非常高&#xff0c;运行速度非常快&#xff0c;并且MySQL For Mac非常容易使用。MySQL For …

mysql断电不受影响db引擎_一次服务器断电,造成innodb引擎表(日志表)损坏的解决办法...

1、mysql日志报错innodb引擎提示数据库没有正常关闭&#xff0c;报innodb错误180112 0:49:28 InnoDB: Database was not shut down normally!InnoDB: Starting crash recovery.InnoDB: Reading tablespace information from the .ibd files...InnoDB: Restoring possible hal…

mysql简单语句_MySQL 简单的语句

一&#xff1a;连接MySQL格式&#xff1a; mysql -h主机地址 -u用户名&#xff0d;p用户密码1. mysql –uroot–p123456 连接本机MYSQL2. mysql –h108.108.108.108 –uroot –p123456 连接远程MYSQL退出MYSQL环境&#xff0c;exit (回车) 或者 CtrlC二&#xff1a;修改密码 格…

石头剪刀布程序流程图_石头剪刀布!我要与电脑决战到天明!(14天)

1、学习心得原来一直以为&#xff0c;学了这个600集视频&#xff0c;应该就能自己做点啥了&#xff0c;比如我的最终目的&#xff1a;爬学区房。但是我今天学的时候&#xff0c;隐隐觉得&#xff0c;好像不大现实。毕竟&#xff0c;这都到了200多集&#xff0c;我依然还是个纯粹…

python做地图导航_「Python」利用高德地图做你想做之事

玩grasshopper基本上都知道OpenStreetMap 这个地图网站&#xff0c;毕竟有一个好用的地图插件&#xff0c;可以在Rhino中绘制出所需&#xff0c;但是一个不好的地方就在于国内的数据量太少&#xff0c;无法满足我们的需求。此次所讲的高德地图基本上可以解决我们的痛点&#xf…

python列表存储字符串_Python 基础知识全篇-字符串列表

现在我们已经对列表有了一定的了解。回头看一下字符串&#xff0c;会发现它不过是字符的集合&#xff0c;即包含一系列字符的列表。它们背后的工作原理是如此的相似&#xff0c;接下来让我们一探究竟吧。作为字符列表的字符串就像列表一样&#xff0c;我们可以对一个字符串作循…

elementui分页组件按钮样式修改_Vue使用Elementui修改默认最快方法!

相信大家都需要过&#xff0c;在Vue中使用Elementui的时候&#xff0c;遇到最多也最蛋疼的问题就是修改默认样式&#xff0c;接下来直奔主题&#xff1b;// template :text-inside"true" :stroke- :percentage"70" >-progress>默认样式方法…

MySQL创建不了计划任务_MySQL创建定时任务(或计划任务)

MySQL 从 5.1.6 版本起&#xff0c;增加了一个时间调度器(Event Scheduler)&#xff0c;可以做定时操作&#xff0c;精确到秒来执行。首先查看定时任务是否开启&#xff0c;命令SHOW VARIABLES LIKE event_scheduler;若没有开启&#xff0c;则使用如下命令开启定时器SET GLOBAL…