idea在运行web项目时部署在tomcat的位置

今天在看Spring实战用idea搭建web项目运行时启动正常但是访问显示404资源不存在,然后去配置的tomcat/webapps下一看没有部署的项目文件,一顿操作弄好之后又去配置的tomcat/webapps下一看还是没有部署的项目!!这是怎么访问成功的??

很奇怪!!印象中使用MyEclipse启动部署web项目时在webapps下应该会有项目文件...........

项目在tomcat 部署成war exploded 而不是war包

Tips:

war模式:将WEB工程以包的形式上传到服务器 ;
war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器;

(1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布。

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

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

如果需要热部署的话按如下设置:

经过百度查资料才知道,在idea中配置的tomcat,在运行时idea不会把项目放到自己的webapps路径下,而是在${user.home}/.IntelliJIdea/system/tomcat 目录下。

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

docBase是指要运行的项目的部署位置,D:\java\IDEAWorkSpace\项目 就是项目源代码的位置,target是由maven构建后生成的.

运行过程:

首先Intellij会为每个web项目建立一个单独的文件夹,以“Unnamed_项目名”命名(可在.idea/workspace.xml中修改)。

在每次启动项目时,它先将tomcat目录下原始的CATALINA_BASE目录拷贝一份到该目录下,也就是将当前tomcat的配置文件拷贝到“Unnamed_项目名”文件夹下。

然后将CATALINA_BASE的路径修改为该目录的路径,再在 Unnamed_项目名/conf/Catalina/localhost下添加项目的配置文件ROOT.xml。

最后启动tomcat,tomcat除了会启动webapps下应用外还会加载/conf/Catalina/localhost下配置的应用,而Intellij就是通过这种方式“隐蔽”地加载web项目。

 

你可能感兴趣的:(Java)