在Tomcat中部署Web应用的方式主要有如下几种:
- 利用Tomcat的自动部署。
- 把web应用拷贝到webapps目录。Tomcat在启动时会加载目录下的应用,并将编译后的结果放入work目录下。
- 使用Manager App控制台部署。
- 在tomcat主页点击“Manager App” 进入应用管理控制台,可以指定一个web应用的路径或war文件。
- 修改conf/server.xml文件部署。
- 修改conf/server.xml文件,增加Context节点可以部署应用。
- 增加自定义的Web部署文件。
- 在conf/Catalina/localhost/ 路径下增加 xyz.xml文件,内容是Context节点,可以部署应用。
那么在Eclipse的项目中选择 Run on Server发生了什么呢?
在默认的情况下,Eclipse把项目部署到工作目录下的.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps中,tmp1文件夹里面存放着该项目的信息,以及一套Tomcat配置文件。
也就是说,Eclipse的默认部署方式根本就是启动了一个使用特殊配置文件的Tomcat, 而不是Tomcat安装的默认配置。这一点,可以通过比较两种情形下进程的命令行参数证明。 这这种配置下,你只能访问在Eclipe的server里配置的应用,而访问不了Tomcat中的其它应用,包括主页。
那么接下来可以更改Eclipse server的部署方式,让它部署到Tomcat中,这时会有两个改变:
- 项目被拷贝到Tomcat路径下的wtpwebapps目录中,这是和webapps类似的目录,会被Tomcat在启动时加载。
- Tomcat的conf路径下的配置文件被(Eclipse中的Servers项目中的配置文件)覆盖,最明显的是server.xml中最后多出了项目的Context.
具体如何切换两种配置,参见下面链接