(三)IDEA部署Tomcat原理
部署成功之后,发现好多都不太懂,不明白怎么就部署成功了,具体运行方式也不懂,所以就 在网上查了一些资料,还有一些有点不确定的因素,希望和大家一块讨论。
IDEA部署Tomcat原理
上一篇文章部署成功后,我们来对比一下IDEA运行服务器与直接运行服务器有什么异同?
- IDEA运行如下:
- 手动运行服务器操作如下
打开命令行窗口cmd,如果你没有配置环境变量的话,进入到安装Tomcat目录下的bin文件夹下,输入catalina run,界面如下:
两者对比,发现只有CATALINA_BASE不同
那么到底发生了什么呢?CATALINA_BASE与CATALINA_HOME有什么不同呢?
官方解释如下:
额,英语不太好。
上面的意思简单来说就是CATALINA_HOME是安装目录,CATALINA_BASE是工作目录。
这么做的好处就在于可以使用CATALINA_HOME安装目录下的资源,在CATALINA_BASE运行目录下工作,而IDEA就是偷换了其中的CATALINA_BASE工作目录。
我们进入IDEA运行的CATALINA_BASE目录也就是上方箭头指向的目录,查看自己IDEA运行时显示的文件夹,一般生成路径如下:
C:\Users{本机名}.IntelliJIdea2018.3\system\tomcat\工程名\conf 你会看到三个文件夹
你每次建的Web项目都会分配一个tomcat实例,
这里面conf文件下有着同一份tomcat配置,
IDEA运行的时候就是用的这里面的配置,
所以你在Tomcat下面修改的配置就不起作用了,
而IDEA运行的时候依赖你安装目录下的lib和bin文件夹。
举个例子,你随便创建一个文件夹,将Tomcat里面的这4个文件夹复制过来
再创建两个文件runCatalina.bat和stopCatalina.bat
runCatalina.bat内容如下
set "CATALINA_BASE=%cd%"
set "CATALINA_HOME=G:\Installation_Package\Tomcat\apache-tomcat-8.5.39\apache-tomcat-8.5.39"
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
call "%EXECUTABLE%" start
stopCatalina.bat内容如下
set "CATALINA_BASE=%cd%" <!--设置当前路径为CATALINA_BASE-->
set "CATALINA_HOME=G:\Installation_Package\Tomcat\apache-tomcat-8.5.39\apache-tomcat-8.5.39"
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
call "%EXECUTABLE%" stop
在该conf文件夹下server.xml中修改端口号,修改为8088,(可以不修改)
然后运行runCatalina.bat,会出现Tomcat界面,说明服务器打开成功
而IDEA就是这样实现的,IDEA更换了CATALINA_BASE的内容。
这样方式用途在于你需要在一台机器上面部署多个Tomcat实例,但是你又不想创建多个Tomcat的副本,换句话说就是让这些Tomcat副本拥有自己 的工作目录但是共享Tomcat的代码。
但是此时你肯定还有一个疑问就是,IDEA如何修改CATALINA_BASE的内容的呢?
我在网上查了相关资料,还不是特别确定,有一部分猜测,后期如果明白的话会马上补充上。
上方箭头指的是运行启动与停止的脚本所在位置,
先启动安装目录下的batalina.bat文件,
该文件里面给CATALINA_BASE赋值,部分代码如下
那么如何将其赋值为C盘下的路径呢?
我个人理解是Tomcat先查找安装目录下文件,确定该文件夹下的文件与IDEA启动时间不符,所以IDEA没有修改Tomcat目录,转而去C盘下的IDEA工程下寻找该配置文件,找到相关配置文件,然后在此路径下加载该路径到CATALINA_BASE的。
如果解释不正确的,希望大家多多指点。
(三)IDEA部署Tomcat原理相关推荐
- IDEA部署tomcat原理小解
IDEA部署tomcat原理小解 最近看到一个视频对IDEA部署启动tomcat有了新的理解.下面和大家分享一下. 1.tomcat部署项目的三种方式 在纯tomcat环境下,不使用开发工具tom ...
- Docker原理及容器部署Tomcat(一)
Docker虚拟化是虚拟化技术解决方案中的一种,轻量级.高性能的虚拟化技术,是目前互联网使用最广泛的虚拟化技术: Docker虚拟化技术概念和原理 Docker虚拟化技术的产物Docker容器(虚拟机 ...
- IDEA/Tomcat 原理:如何将 Tomcat 集成到 IDEA?实现由传统部署延伸到热部署 Java EE 项目?
文章目录 前言 一.将 Tomcat 集成到 IDEA 中 1.1.进入 IDEA Tomcat 配置页面 1.2.配置并集成 Tomcat 1.3.配置完成说明 1.4.集成检查 1.4.1.检查主 ...
- tomcat中三种部署项目的方法(转)
tomcat中三种部署项目的方法 第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/h ...
- tomcat原理简要分析,java
tomcat原理 tomcat位置 tomcat实际上是部署在服务器上的: tomcat作用 tomcat服务器是一个Servlet和JSP容器,它响应HTML页面的访问请求. 实际上Tomcat是A ...
- Intellij idea 的tomcat原理讲解
作者: 陈宇超 纪念卓越班的日子 初次用idea的小白可能会很感到很神奇,intellij idea部署web项目在浏览器不需要输入项目名就可以直接访问,很是方便啊.那么 intellij 是如何实现 ...
- tomcat + spring mvc 原理(一):tomcat原理综述和静态架构
tomcat + spring mvc 原理(一):tomcat原理综述和静态架构 tomcat + spring mvc的运作模式 tomcat内部的基本容器构成 tomcat容器对应的外部配置 t ...
- SpringBoot嵌入Tomcat原理分析
SpringBoot嵌入Tomcat原理 内嵌Tomcat启动原理 首先,来到启动SpringBoot项目的地方,也就是朱配置类. @SpringBootApplication public clas ...
- Tomcat 原理篇
TOMCAT 原理篇 一.Tomcat 组成(Tomcat 由以下组件组成) 1.server a) Server是一个Catalina Servlet容器: b) Server 可以包含一个或多个s ...
- 源码包部署tomcat
JAVA 在openjdk下载 jre----痩身版的-------jdk java的容器----->tomcat,websphere(银行用的多),Jboss(12306),weblogic ...
最新文章
- 程序设计实习MOOC / 程序设计与算法(三)第一周测验
- plugin since you are using Gradle version 4.6 or above
- 阿里小程序云应用上线了,有哪些看点?
- Property or method “id“ is not defined on the instance but referenced during render.Make sure ......
- 一个servlet,多个dwr.xml配置文件
- FFmpeg与libx264接口源代码简单分析
- Unity3D基础15:触发器
- phpFreeChat 2.0.0 发布,Web 聊天室
- Redis只能做缓存?太out了!
- 【转】python eval
- Raspberry Pi车牌识别系统
- 泛函分析 04.05 有界线性算子 - 闭算子与闭图像定理
- QOS中 PQ,CQ.RR,WFQ,CBWFQ,LLQ区分
- linux系统进入图文界面,Linux启动界面切换:图形界面-字符界面
- oracle中nowait怎么用,oracle中UPDATE nowait 的使用方法介绍
- 敏捷项目管理21天学习计划--敏捷生命周期
- Mysql组复制(MGR)——前提及限制
- 《神雕瞎驴》,金庸看后哭了^-^
- 拥有多重人格的他,可能是个裂脑人
- 受控电源(SOC PWM调压SVB)计算工具CVC使用说明
热门文章
- android安卓字体下载,安卓Android简中综艺手机字体
- Json解析工具类之GsonUtil类
- QQ广告营销推广全能王 QQ空间自动发表日志说说广告实用工具!
- web压力测试工具(小而精)
- 你会用 JSON.stringify()? JSON.stringify一些坑
- 油猴脚本对web项目的影响
- 教你轻松安装Adobe Acrobat XI Pro(编辑PDF使用的)
- CE修改器基础操作教程
- Datalogic得利捷扫码器助力生产与物流自动化!
- 蓝牙方案,蓝牙国密读卡器,TypeA/TypeB/Felca卡读写,分享蓝牙NFC读写器带USB接口,银行卡/CPU卡/NTAG213/Mifare卡蓝牙读写器,usb多通道通讯