Eclipse中运行Tomcat时三个webapps目录的区别与查找路径问询
在Eclipse中运行Tomcat时,会存在三个功能不同的webapps目录,具体区别如下:
$CATALINA_BASE/webapps(Eclipse临时基础目录下的webapps)
路径示例:workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/webapps
这是Eclipse为Tomcat创建的隔离运行实例的基础目录下的webapps,属于Tomcat原生架构里的默认部署目录,但Eclipse启动的Tomcat实例默认不会使用这个目录部署项目,仅作为实例结构的一部分存在。wtpwebapps(WTP专属部署目录)
路径示例:workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps
这是Eclipse Web Tools Platform(WTP)专为开发场景设计的部署目录。当你在Eclipse中将动态Web项目添加到Tomcat服务器后,项目会被自动同步或部署到这里,这是Eclipse中运行的Tomcat实际读取网页、静态资源、已编译项目文件的核心目录。$CATALINA_HOME/webapps(Tomcat安装目录下的webapps)
这是Tomcat官方安装包自带的原生webapps目录,存放着Tomcat默认应用(如ROOT主页、manager管理控制台等)。默认情况下,Eclipse启动的Tomcat会隔离这个目录,不会加载其中的应用;若需要加载,需手动修改Eclipse的Tomcat服务器配置,取消隔离并启用对该目录的部署支持。
核心问题说明:Tomcat在Eclipse中会从哪个目录查找war文件和网页?
默认配置下,Eclipse中的Tomcat只会从wtpwebapps目录加载你的开发项目(包括网页、资源以及部署的war包)。
- 如果你是通过Eclipse的服务器管理功能部署项目,项目会自动被放置到
wtpwebapps,Tomcat运行时直接读取这里的内容。 $CATALINA_HOME/webapps中的默认应用仅在你手动修改服务器配置后才会被加载;$CATALINA_BASE/webapps默认不会被用于部署和加载应用。
内容的提问来源于Stack Exchange,提问作者Dan R.

