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;适用于网站搭建、开发环境等低负载应…

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

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

将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-…

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 …

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

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

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

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

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

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

mybatis字符串转成数字_计算机储存数字和字符的方法你了解多少?

前语&#xff1a;不要为了读文章而读文章&#xff0c;一定要带着问题来读文章&#xff0c;勤思考。本文链接&#xff1a; http://1t.click/J7E前言最近在学习中涉及到计算机储存、传输数字和字符等操作&#xff0c;由于对字节、2进制、10进制、16进制、ASCII码的概念以及它们之…

usb连接不上 艾德克斯电源_艾德克斯HT3150联机和IT6720校准联机记

大概2年前&#xff0c;坛里入了一台设置电压比输出电压高几伏的IT6720电源&#xff0c;到手发现&#xff0c;里面被修得惨不忍睹。到手的时候是110V的&#xff0c;没想到这种型号&#xff0c;跳线要改焊控制变压器和高压部分两个跳线&#xff0c;只修改了控制变压器跳线&#x…

使用java向ftp上传多张图片_ftp免费空间,利用ftp工具定时连接ftp免费空间教程及java配置...

IIS7服务器管理工具这款ftp客户端软件&#xff0c;可以批量管理ftp站点&#xff0c;还可以实现ftp定时上传、定时下载&#xff0c;定时备份、自动更新等功能。关于ftp客户端功能&#xff0c;它主要实现以下四点功能&#xff1a;1、ftp 批量操作2、ftp 定时同步&#xff08;上传…

损失函数的意义和作用_损失函数的可视化:浅论模型的参数空间与正则

点击蓝字关注我们作者丨土豆知乎来源丨https://zhuanlan.zhihu.com/p/158857128本文已获授权&#xff0c;不得二次转载前言在深度学习中&#xff0c;我们总是不可避免会碰到各种各样的损失函数。通常来说&#xff0c;损失函数都是高维的函数&#xff0c;难以可视化为人类可以分…

postgres 把一个表的值转成另一个表的字段名_用LUT来做一个可动态配置的卷积核...

引言由于卷积核数据在计算过程中保持不变&#xff0c;更新较慢。这样就可以利用LUT来存储权重并同时进行乘法运算。LUT乘法器的实现很早就已经研究过&#xff0c;本论文正是在此基础上&#xff0c;提出了用于实现可配置的卷积实现方法。基于LUT的乘法器不会受到FPGA中DSP资源的…

mysql储存过程把集合并_MySQL 多日志表结果集合拼接存储过程

通常MySQL单天的日志 只记录当天的日志信息,如果需要查看一月内的日志信息需要对每天的日志表结果集合进行拼接&#xff0c;通常用到 union通常MySQL单天的日志 只记录当天的日志信息,如果需要查看一月内的日志信息需要对每天的日志表结果集合进行拼接&#xff0c;通常用到 uni…

对于一个指针可以多次使用delete_【C++札记】new和delete

malloc,free和new,delete区别&#xff1a;a.malloc,free是C/C的标准库函数。new,delete是c的操作符。b.malloc申请的是内存&#xff0c;严格意义不是“对象”&#xff0c;new申请的可以理解为“对象”&#xff0c;new 时会调用构造函数&#xff0c;返回指向该对象的指针。c.对于…

java循环队列_Java 循环队列的实现

队列概念队列(Queue)是限定只能在一端插入、另一端删除的线性表。允许删除的一端叫做队头(front),允许插入的一端叫做队尾(rear)&#xff0c;没有元素的队列称为“空队列”。队列具有先进先出(FIFO)的特性。普通顺序队列存在的问题在普通顺序队列中,入队的操作就是先将尾指针re…

java new 多线程_Java多线程实现(四种方法)

1.继承Thread类&#xff0c;重写run方法(其实Thread类本身也实现了Runnable接口)2.实现Runnable接口&#xff0c;重写run方法3.实现Callable接口&#xff0c;重写call方法(有返回值)4.使用线程池(有返回值)1.继承Thread类&#xff0c;重写run方法每次创建一个新的线程&#xff…