更改Eclipse下Tomcat的部署目录 ,防止上传的文件是到eclipse的克隆的tomcat上的webapp,而不是tomcat本身的webapp

时间:2024-01-09 09:42:38

使用eclipse开发是因为机器不够用myeclipse,eclipse也比myeclipse清爽很多,启动速度也快。这里的搭建开发环境使用: Jdk1.6+Tomcat6+Eclipse JEE, 工作目录如下环境目录如下:

安装路径:

C:\Java\Jdk1.6.0

C:\Java\Jre1.6.0

D:\Tomcat 6.0

D:\workSpace

D:\Eclipse

配置eclipse的开发环境,配置jdk的安装路径和tomcat安装路径。在eclipse下建立Dynamic Web Project工程zhgy,在使用eclipse中new一个tomcat,通过启动该tomcat来发布Dynamic Web Project的时候,其实并未将工程发布到tomcat 安装目录所在的 webapps下。这点可以去上述的tomcat 安装目录 的webapps目录下查看。从启动时候的控制台输出来看项目是被发布到了如下的目录:

信息: Set web app root system property: 'webapp.root' = [ D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\zhgy\ ]

打开该目录可以很清楚的看到存在zhgy这样一个文件夹,这就是我们现在可以访问的项目目录。

再打开 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\   这个目录,可以看到这个目录下的结构和 D:\Tomcat 6.0 的目录结构是一模一样的,只是多了个wtpwebapps目录。其实 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\ 这个目录就是eclipse的对 D:\Tomcat 6.0 目录的一个克隆,从而使D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\ 也能够具备源服务器的功能。

如果再new几个服务器,就会在 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\ 目录下依次出现temp0、temp1、temp2等多个克隆服务器,但是这里每次只能启动上面一个克隆服务器,因为他们都使用的是相同的启动端口(当然还有相同的关闭端口等)。

这样会给我们带来很多的不方便。举个例子:就上述工程而言,当我们在进行开发的时候,项目需要将上传的图片放入到工程的同级目录的upload文件夹的时候,会发现图片是上传到了所在的目录D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\upload\ ,但是无法在浏览器中访问到上传的图片。这时候我们可以手动将该upload目录整个复制到D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\webapps\ ,这时在浏览器中的确就可以访问了。造成这种现象的原因是tomcat服务器默认webapps为工程目录,而不是wtpwebapps 目录。之所能够通过浏览器访问 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\zhgy\ 下的zhgy这个项目,是由于eclipse通过tomcat发布项目的时候在 D:\workSpace-jx\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\conf 目录的server.xml文件中有如下的设置:

Xml代码 更改Eclipse下Tomcat的部署目录 ,防止上传的文件是到eclipse的克隆的tomcat上的webapp,而不是tomcat本身的webapp 更改Eclipse下Tomcat的部署目录 ,防止上传的文件是到eclipse的克隆的tomcat上的webapp,而不是tomcat本身的webapp更改Eclipse下Tomcat的部署目录 ,防止上传的文件是到eclipse的克隆的tomcat上的webapp,而不是tomcat本身的webapp
  1. <Context docBase="D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\zhgy" path="/zhgy" reloadable="true" source="org.eclipse.jst.jee.server:zhgy"/>
  1. <Context docBase="D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\zhgy" path="/zhgy" reloadable="true" source="org.eclipse.jst.jee.server:zhgy"/>

这一点我们可以通过在查看eclipse中新建的tomcat属性来了解,如下图中Server Locations中所示:

更改Eclipse下Tomcat的部署目录 ,防止上传的文件是到eclipse的克隆的tomcat上的webapp,而不是tomcat本身的webapp

手动拷贝虽然可以解决问题,但是确实不方便。但是上图中的Server Locations是灰色的,不能更改。其实eclipse新建tomcat克隆的时候是可以更改的,只是在new这个tomcat的时候不要添加任何工程进去,再在tomcat上点击右键open:

更改Eclipse下Tomcat的部署目录 ,防止上传的文件是到eclipse的克隆的tomcat上的webapp,而不是tomcat本身的webapp

就可以看到Server Locations选项不再是灰色,是可以编辑的了:

更改Eclipse下Tomcat的部署目录 ,防止上传的文件是到eclipse的克隆的tomcat上的webapp,而不是tomcat本身的webapp

这里有三种可以选择:

1.使用eclipse的工作空间,以上述为例就是 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\

2.使用tomcat的安装目录,以上述为例就是 D:\tomcat\

3.自定义路径,这里就是自己选择目录了

还可以通过修改 Deploy path 来定义工程到底部署到容器的哪个目录下。例如下图中,我们就可以选着 Use Tomcat Installtion 这种方式,并且设置 Deploy path 为 webapps:

更改Eclipse下Tomcat的部署目录 ,防止上传的文件是到eclipse的克隆的tomcat上的webapp,而不是tomcat本身的webapp

参考:

1.Super Legend的Blog:《Eclipse自动部署项目到Tomcat的webapps下的有效方法》

转自:http://blog.csdn.net/yang3866910/article/details/8673785