博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
intellij idea在运行web项目时部署的位置(tomcat)
阅读量:3587 次
发布时间:2019-05-20

本文共 1693 字,大约阅读时间需要 5 分钟。

在idea中运行tomcat,把项目部署运行起来,然后我去tomcat目录下去看,找不到我部署的项目 那我的项目是怎么运行起来的?

说明一下:这里是使用tomcat 部署成war exploded 而不是war包。

war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。

在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。

如上,将两处都修改成Update resources即可。

webapps下面文件夹都翻了一遍,都没有发现部署的项目。

去work文件夹下也看了一遍,是空的。

后来发现,在idea中配置的tomcat,在运行时idea不会把项目放到自己的webapps路径下,而是复制三份文件到 ${user.home}/.IntelliJIdea/system/tomcat 目录下的各自项目。

我们进入该目录,看到如下(名称是通过我们的项目名转化而来):

也就是说每个项目都有属于自己的一份tomcat配置,互不干扰。

我们进入其中一个项目下,看到如下:(在自己的tomcat安装目录下是看不到日志的,日志在这里,还有一些配置文件)

每个项目的配置文件夹中有一个 /conf/Catalina/localhost/ROOT.xml 文件,内容如下:

其中,path是指在访问此项目时,是否需要添加额外的路径,如果为空,则直接使用域名或者ip就可以访问到该项目:127.0.0.1。这个值在ieda中的Run/Debug Configurations中可以配置:(即Application context)

如果现在我在Application context加上:/springSecurityDemo

Server这边会自动加入:springSecurityDemo/

这时候,我们运行tomcat之后,在conf/Catalina/localhost没有发现ROOT.xml,而是springSecurityDemo.xml文件,内容如下:

这时候项目的访问路径是:http://localhost:8145/springSecurityDemo/

docBase是指要运行的项目的部署位置,/myProject/springSecurityDemo 就是我的项目源代码的位置,build是由gradle构建后生成的,gradle build完成之后生成的项目,结构

如下:

而idea启动tomcat的命令在这里:

整个项目运行过程是:首先gradle build项目,将构建结果写到项目的build目录下,然后idea复制一份tomcat的conf、logs和work文件夹到${user.home}/.IntelliJIdea/system/tomcat 中,之后启动tomcat安装目录下的catalina.sh文件,tomcat读取配置文件,找到项目位置,然后就运行起来了。

-------------------------------------------------------------------------------------

如果是使用tomcat 部署成是war包。那么会不会就能在自己安装的tomcat中找到呢?

刚开始我将项目改为war部署的方式,但是运行之后tomcat中始终没有项目的文件。后来发现如果将当前的Application context设置为’/’,那么

tomcat也不会将项目部署到webapps中,因为这个相当于你项目的根路径。后来经过实践,发现这个Application context就是你项目在webapps路径下项目的根目录名。 

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Victor_Cindy1/article/details/72680553
你可能感兴趣的文章
url命名与反转,应用命名空间与实例命名空间
查看>>
django自定义URL(PATH)转换器
查看>>
随机请求头
查看>>
python中threading多线程以及传参
查看>>
pandas中按照某一列进行排序
查看>>
python中pyodbc连接sql server数据库
查看>>
django2.0,python3.7连接sql_server
查看>>
Python 生成requirement及使用requirements.txt安装类库
查看>>
multiprocessing.pool多线程的使用
查看>>
非计算机专业本科毕业如何迅速成长为一名算法工程师
查看>>
关于自然语言处理(NLP)的个人学习资料
查看>>
BERT
查看>>
Java keytool生成jks证书,并使用openssl查看公钥信息
查看>>
mysql创建存储过程,set动态赋值
查看>>
【c语言】蓝桥杯算法提高 Quadratic Equation
查看>>
【c语言】蓝桥杯算法提高 输入输出格式练习
查看>>
【c语言】蓝桥杯算法提高 勾股数
查看>>
【c语言】蓝桥杯算法提高 c++_ch02_04
查看>>
【c语言】蓝桥杯算法提高 3-1课后习题2
查看>>
【c语言】蓝桥杯算法提高 3-2求存款
查看>>