Tomcat部署项目的多种方式

Tomcat安装目录:${TOMCAT_HOME}

1.常规的webapps下
直接部署到${TOMCAT_HOME}/webapps下

2.利用控制台进行部署

3.外部部署
修改${TOMCAT_HOME}/conf/server.xml 在<Host>标签下添加web所在的目录指定path,如:

<Context path="/xx" docBase="D:\\workspace\\xx\\target\\xx" reloadable="true" sessionCookiePath="/xx"sessionCookieName="yoursessionname"></Context>

4.${TOMCAT_HOME}/conf下建工程目录镜像
在conf目录中,新建 Catalina\localhost目录,在该目录中新建一个xml文件,名字可以随意取,只要和当前文件中的文件名不重复就行了,该xml文件的内容为:

<Context path="/xx" docBase="D:\\workspace\\xx\\target\\xx" debug="0" privileged="true"></Context>

IntelliJ IDEA 启动项目分析

IntelliJ IDEA 就是使用第四种部署方式,不过还是有些区别

IDEA 启动/停止 Tomcat 通过catalina.bat run/stop
但是在${TOMCAT_HOME}/conf下,没有Catalina\localhost\xxxx.xml文件
在.IntelliJIdea2017.1目录下发现有相关的配置文件

文件的修改时间与内容和启动项目的信息吻合

说明 IDEA 启动E盘下Tomcat的时候,加载了C盘下的项目部署配置文件
下面看看catalina.bat的内容

判断CATALINA_HOME是否为空,如果为空就把当前位置设置为CATALINA_HOME,还有CATALINA_BASE

E:\Work\TomcatIDEA\apache-tomcat-7.0.54

既然确定IDEA是通过E:\Work\TomcatIDEA\apache-tomcat-7.0.54\bin\catalina.bat启动的,但是此Tomcat目录下的文件修改时间都不是IDEA 启动的时间,说明IDEA 没有修改Tomcat目录

在查看控制台信息时发现

Using CATALINA_BASE:   "C:\Users\xxxxx\.IntelliJIdea2017.1\system\tomcat\Unnamed_jeesite"
Using CATALINA_HOME: "E:\Work\TomcatIDEA\apache-tomcat-7.0.54"

CATALINA_BASE和CATALINA_HOME区别

之前没有仔细了解CATALINA_BASE和CATALINA_HOME区别
网上资料:

CATALINA_HOME是Tomcat的安装目录,CATALINA_BASE是Tomcat的工作目录。如果我们想要运行Tomcat的 多个实例,但是不想安装多个Tomcat软件副本。那么我们可以配置多个工作目录,每个运行实例独占一个工作目录,但是共享同一个安装目录 Tomcat每个运行实例需要使用自己的conf、logs、temp、webapps、work和shared目录,因此CATALINA_BASE就 指向这些目录。 而其他目录主要包括了Tomcat的二进制文件和脚本,CATALINA_HOME就指向这些目录。

IntelliJ IDEA就是利用CATALINA_BASE运行多个实例,如图

via:http://blog.csdn.net/u013938484/article/details/69389836

IntelliJ IDEA通过Tomcat启动项目过程分析的更多相关文章

  1. IntelliJ IDEA 配置tomcat 启动项目

    1.打开file中setting中搜索Application Servers,如下图 2.添加服务器类型,例如tomcat,如下图,添加完成之后可以选定tomcat的目录,tomcat Home配置t ...

  2. tomcat启动项目时一直在跑,项目没起来

    1. 在整合maven项目时我遇到一个问题,tomcat启动项目总是报超时,后来我把timeout调到180秒,还是启动超时.看了不是timeout时间短的问题. 2.弄了一天也没解决,后来请大神给看 ...

  3. tomcat启动项目被重新加载,导致资源初始化两遍

    之前没有遇到过这个问题,配了三天的项目了,惊人啊!!!各种怪问题全被我赶上了.真有种骂人的冲动. tomcat启动项目时,项目资源被加载两遍. 原因:配置虚拟目录导致,项目被重新加载. <Hos ...

  4. 解决eclipse使用tomcat启动项目后访问项目404的问题

    今天启动项目的时候发现项目启动没有问题,但是一直访问不到页面,F12发现根本没有交互,百度后解决了,故记下来为以后提供方法,若有不同的解决方法,欢迎指教 1.首先要确保你的tomcat下没有项目,怎么 ...

  5. 十二 Cent OS下 tomcat启动项目响应速度很慢

    在tomcat部署了web项目,每次启动项目都需要花费2-3分钟,甚至有的时候需要花费10分钟左右,实在是太慢了. 在网上查找解决方案,把 jdk/jre/lib/security/java.secu ...

  6. spring boot整合websocket之使用自带tomcat启动项目报错记录

    项目中用到websocket,就将原来写好的websocket工具类直接拿来使用,发现前端建立连接的时候报404,经查找发现是因为原来用的是配置的外部tomcat启动,这次是spring boot自带 ...

  7. IDEA里面maven项目使用maven插件tomcat启动项目

    1.首先在pom.xml添加tomcat插件依赖: <?xml version="1.0" encoding="UTF-8"?> <proje ...

  8. jetty和tomcat启动项目

    首先jetty和tomcat区别,不全面说,只说我理解的.jetty架构比tomcat更为简单.jetty是基于Handler来实现的,易于拓展,因此更适合于同时处理且长时间保持连接:tomcat的架 ...

  9. tomcat启动项目的时候不报错而且启动的很快

    最后发现是tomcat部署项目的时候,并没有将一部分文件复制到tomcat的目录下 方法 将没有添加的目录 Finish

随机推荐

  1. springmvc+thymeleaf搭建框架启动报错

    最近项目开发需要用到thymeleaf前端界面模板引擎,所以提前了解学习一下,但是在框架搭建好了之后启动tomcat一直提示如下错误: org.springframework.beans.factor ...

  2. js 对象与数组相互转化的快捷方法 Object.keys()、Object.values()、Object.entries()

    Object.keys() Object.keys 返回一个所有元素为字符串的数组,其元素来自于从给定的object上面可直接枚举的属性.这些属性的顺序与手动遍历该对象属性时的一致. 例如: let ...

  3. 深入理解[Future模式]原理与技术

    1.Future模式 Future模式和多线程技术密切相关,可以说是利用多线程技术优化程序的一个实例. 在程序设计中,当某一段程序提交了一个请求,期望得到一个答复.但非常不幸的是,服务程序对这个请求的 ...

  4. Python-正则表达式总结版

    前言: 总是写不好正则表达式,时间长不用就有些忘记了,故此在总结一篇文章以便日后查阅. 一.常用的匹配规则总结表 模式 描述 \w 匹配字母数字及下划线 \W 匹配非字母数字及下划线 \s 匹配任意空 ...

  5. Codeforces Round #486 (Div. 3)-C. Equal Sums

    C. Equal Sums time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  6. CONTINUE...?模拟分情况

    CONTINUE...? DreamGrid has  classmates numbered from  to . Some of them are boys and the others are ...

  7. Of Study

    Bacon Reading maketh a full man; conference a ready man; and writing an exact man. And therefore, if ...

  8. MySQL中有关NULL的计算

    mysql> select NULL=NULL; #判断两个NULL是否相等,结果不是1也不是0 +-----------+ | NULL=NULL | +-----------+ | NULL ...

  9. MapReduce过程<原创>

    一.预处理阶段 二.Map阶段 一个Map任务被JobTracker(管家)分配到多个TaskTracker(弟弟)执行,如下图所示,弟弟的map()只负责拆分,虽然map()输出两个相同的键值对,但 ...

  10. Proper usage of Java -D command-line parameters

    https://stackoverflow.com/questions/5045608/proper-usage-of-java-d-command-line-parameters https://c ...