很多人用myeclipse发布web应用,它会自动把项目文件复制到tomcat目录下的webapps文件夹中,而用eclipse的时候发现运行的时候eclipse并不会把文件复制过去,但它确实可以打开,可以测试到。
当eclipse中的tomcat运行着时,tomcat的安装目录下的wabapps目录失效,我们在浏览器中访问http://localhost:8080/也不会出现tomcat欢迎界面,而且会出http404错误,我们放在webapps目录下的项目也不能访问了。但是当我们把eclipse中的tomcat停掉,然后在命令提示符中启动tomcat后,又可以访问wabapps中的项目了。
这是因为当eclipse启动tomcat时,更改了Tomcat的webapp主目录,将tomcat的webapp映射到了eclipse的workspace中的workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\目录了,这种更改是临时的,当我们关闭eclipse中的tomcat服务时时,tomcat恢复正常。
打开workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0临时文件夹,我们看到该目下有与tomcat下类似的目录,有conf、logs、work等重要子目录,打开wtpwebapps(注:这里不是webapps),可以看到我们在eclipse中运行的项目都放在这,也有ROOT根目录。用记事本打开conf下的server.xml,发现整个文件中,Host(tomcat的独立service的Host,即监听8080端口的service下的Host)的配置不太一样了,多了一些映射的关系例如:
<context docbase="D:\workspace_middleware\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ROOT" path="" reloadable="false">
原来eclipse把项目文件移到了
workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\的目录下面了,找了半天终于弄明白了。
至于这个目录能不能设置成别的地方,这个问题我也找到解决方案了,方法是:
点击Server,确保Server下没有项目,否则修改不了,还不能修改就clean一下,然后双击Tomcatv7.0 Server at loc.....这个东西,就会弹出一个设置的页面。


选择UseTomcat installation,Server path会跟着改变,将Deploy path修改为webapps,默认是wtpwebapps,ctrl+s保存,然后启动运行的话,项目文件就会自动移到tomcat的webapps目录下啦。