更改Eclipse下Tomcat的部署目录
转自:http://kingxss.iteye.com/blog/1741438
前言
今天tomcat启动就报错,后来查原因是因为异常关闭tomcat的原因,需要删除一个sessions.ser的文件,但是苦于没找到,着急了就干脆重新配置了一次tomcat,但此事一直耿耿于怀,那个文件到底在哪里呢,在这个博客里找到了答案,特此一转......
正文
使用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文件中有如下的设置:
<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中所示:
手动拷贝虽然可以解决问题,但是确实不方便。但是上图中的Server Locations是灰色的,不能更改。其实eclipse新建tomcat克隆的时候是可以更改的,只是在new这个tomcat的时候不要添加任何工程进去,再在tomcat上点击右键open:
就可以看到Server Locations选项不再是灰色,是可以编辑的了:
这里有三种可以选择:
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:
其实,最简单的方法是修改VM arguments的-Dwtp.deploy属性。该属性位置为:eclipse菜单栏Run -> Run Configurations -> Arguments -> VM arguments.
参考:
1.Super Legend的Blog:《Eclipse自动部署项目到Tomcat的webapps下的有效方法》
更改Eclipse下Tomcat的部署目录的更多相关文章
- 更改Eclipse下Tomcat的部署目录 ,防止上传的文件是到eclipse的克隆的tomcat上的webapp,而不是tomcat本身的webapp
使用eclipse开发是因为机器不够用myeclipse,eclipse也比myeclipse清爽很多,启动速度也快.这里的搭建开发环境使用: Jdk1.6+Tomcat6+Eclipse JEE, ...
- 解释Eclipse下Tomcat项目部署路径问题(.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps)
配置eclipse的开发环境,配置jdk的安装路径和tomcat安装路径.在eclipse下建立Dynamic Web Project工程zhgy,在使用eclipse中new一个tomcat,通过启 ...
- 转!!!解释Eclipse下Tomcat项目部署路径问题(.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps)
1.配置eclipse的开发环境,配置jdk的安装路径和tomcat安装路径. 2.在eclipse下建立Dynamic Web Project工程zhgy,在使用eclipse中new一个tomca ...
- eclipse下tomcat添加部署Module,Web名称与项目名称不一致的解决方法
问题描述: 使用eclipse,因为某种原因项目名称修改后,使用tomcat进行web发布时,选择“Add and Remove Projects...”或双击打开选择Modules选项卡后点击“An ...
- Eclipse下Tomcat常用设置
Eclipse下Tomcat常用设置 1,Eclipse建立Tomcat服务 1.1 新建Server 首先这里是指,jee版的Eclipse.Eclipse是没有像MyEclipse那样集成Tomc ...
- maven学习6 Eclipse下Tomcat常用设置
Eclipse下Tomcat常用设置 1,Eclipse建立Tomcat服务 1.1 新建Server 首先这里是指,jee版的Eclipse.Eclipse是没有像MyEclipse那样集成Tomc ...
- Eclipse下Tomcat插件的安装
在Eclipse下安装Tomcat插件使开发,编译,发布变的相当的简单,下面就说一下安装的过程,很简单的: 1.先下载一个tomcat插件 地址:http://www.eclipsetotale.co ...
- Linux下Tomcat同时部署两个工程然而只有一个能访问问题
Linux下Tomcat同时部署两个工程然而只有一个能访问问题 问题: Linux下单个部署到Tomcat下的时候都正常,两个一起部署,只有一个能访问: 解决方案: 由于采用#./shutdown.s ...
- Eclipse下Tomcat设置
1,Eclipse建立Tomcat服务 1.1 新建Server 首先这里是指,jee版的Eclipse.Eclipse是没有像MyEclipse那样集成Tomcat的,需要我们自己设置. New - ...
随机推荐
- Selenium2+python自动化49-判断文本(text_to_be_present_in_element)【转载】
前言 在做结果判断的时候,经常想判断某个元素中是否存在指定的文本,如登录后判断页面中是账号是否是该用户的用户名. 在前面的登录案例中,写了一个简单的方法,但不是公用的,在EC模块有个方法是可以专门用来 ...
- k8s创建资源的两种方式
命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1. 用 kubectl 命令直接创建 kubectl run nginx-deployment --image=nginx: -- ...
- javaScript Promise 入门
Promise是JavaScript的异步编程模式,为繁重的异步回调带来了福音. 一直以来,JavaScript处理异步都是以callback的方式,假设需要进行一个异步队列,执行起来如下: anim ...
- Java的位运算符与二进制转换
转换: Java整型数据类型有:byte.char.short.int.long.要把它们转换成二进制的原码形式,必须明白他们各占几个字节.,一个字节==8位数 数据类型 ...
- Lambda演算(二)归约!归约!归约!
(一) 这里先不列出λ项的正式定义,只记住λ表达式语义上的构造方式为: x 一个单独的变量名是一个λ项表达式: (λx.M) 该λ表示一个函数.其中 M 是这个函数的函数体,M 本身也是一个 λ项. ...
- Annotation的语法和使用
http://blog.csdn.net/cdl2008sky/article/details/6265742 (1) .<context:component-scan base-package ...
- 【二分图】【最大匹配】【匈牙利算法】洛谷 P2071 座位安排 seat.cpp/c/pas
∵每个座位可以坐俩人,所以拆点最大匹配. #include<cstdio> #include<vector> #include<cstring> using nam ...
- [CF911B]Two Cakes
题目大意: 有两种蛋糕,分别被切成了a块和b块,要把这些蛋糕分到n个盘子里. 要求每个盘子里只能有一种蛋糕,每一种蛋糕都被分.问最优情况下,盘子里至少能放几个蛋糕. 思路: 二分答案. 由于每个蛋糕都 ...
- lua的luasocket程序
-- load namespace local socket = require("socket") -- create a TCP socket and bind it to t ...
- Java高级架构师(一)第03节:多模块多Web应用合并War包
多模块.多Web应用合并war包 在日常的系统开发中,如果担心各个系统的资源同名覆盖,可以在总的War模块下放置一份最终的资源. 将版本号改成9.1.0.v20131115,ok 在Idea中的Mav ...