由于,eclipse启动tomcat部署项目并不是直接把项目放到tomcat的webapps目录下的,而是从我们在eclipse配置的外部tomcat中取出二进制文件,在eclipse内部插件中作为tomcat启动的。
简单的说就是没有部署到tomcat目录下,而是到eclipse的workspace中了。我找到了eclipse部署的位置,拿我的位置举例G:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps,如果需要在eclipse中使用虚拟路径来访问tomcat容器外的资源的时候,需要修改tmp1/conf/server.xml
![](https://i-blog.csdnimg.cn/blog_migrate/4ae490e9873b6316ed6d0a453da8ff11.png)
修改虚拟路径参考我之前的文章:Tomcat配置虚拟路径访问容器外的硬盘资源
修改完毕后eclipse启动tomcat,虚拟路径的确起作用了,然而如果此时停掉了tomcat,然后重新启动一次,虚拟路径又失效了!
what happens?
![](https://i-blog.csdnimg.cn/blog_migrate/002934ae813ba4afdc3ee8a25e92675e.png)
如上图,eclipse会在启动tomcat的时候使用这些配置文件去替换掉server插件中的文件。
解决办法有二:
1.直接在Servers下的servler.xml和web.xml中编辑
2.preferences-->server-->launching-->去掉Automatically publish when starting servers的勾选
![](https://i-blog.csdnimg.cn/blog_migrate/895704f198d94ba208edaca9fa01495c.png)
两种方法都可以解决这个问题,但是,推荐第一种方法,第二种方法可能会导致一些问题,比如remove了一个项目的部署,此时在server插件中还会运行该项目