当前位置: 代码迷 >> Eclipse >> Eclipse便利的管理Tomcat (Eclipse + WTP + Tomcat 配置 )
  详细解决方案

Eclipse便利的管理Tomcat (Eclipse + WTP + Tomcat 配置 )

热度:545   发布时间:2016-04-23 11:57:09.0
Eclipse方便的管理Tomcat (Eclipse + WTP + Tomcat 配置 )

原版的Eclipse自带WTPWTP本身的Web应用服务器管理功能还可以,但有些复杂。

要想把它用顺手,还要花点时间来学习一下。学会后还算方便的。

目前还未找到十分好用的Eclipse下的管理Tomcat的插件。

有一个老处于插件TomcatPlugin V321,只能管理一个Tomcat,数量上不够用。

所以用好Eclipse自带WTP也是一条出路。

(本文是Eclipse 3.6 J2EE版)

?

?

一、WTP本身的Web应用服务器管理功能

----------------------------------------

?

WTP支持几乎所有Web应用服务器,支持的Web应用服务器种类请看下图。

?

?

如果不包括你想要的Web应用服务器,可以点击图片中的“Download additional serer adapters”添加支持其它的Web应用服务器,种类很丰富。

?

WTP本身的Web应用服务器管理功能功能挺多,相驾驭它还是有点复杂的,下面就学习如何驾驭它。

使用它来发布我的web应用程序到Tomcat中并运行起来,停止、重起、调试模式启动Tomcat、清理再发布,等等。

?

?

?

?

二、安装Tomcat

----------------------------------------

1、解压两个解压版的Tomcat6,到本地硬盘。

并行项目多,JNDI数据源不同,所以在使用两个Tomcat

JDK,和JAVA_HOME环境变量已正确配置

具体操作,略。

?

2、在Eclipse中配置上这两个Tomcat,如下图:

?

?

?

三、创建Wtp的Tomcat管理配置项目

----------------------------------------

打开Eclipse的Servers视图。在空白处右击,选“New”--"Server",用于创建Wtp的Tomcat管理配置。

?

我这里,添加了两个 Wtp的Tomcat server管理配置项目。

删除? Wtp的Tomcat server管理配置项目时, 要停止所有的Tomcat server 才能成功,不然有报错,有残留。

?

同时在“包视图”也多了一个叫Servers的“项目”,它与我们自己开发的项目是并列的。其中Tomcat的配置文件都在这里。已后想修改Tomcat的配置文件,就应该在这里修改,不要直接修改原Tomcat安装目录的配置文件。

我们按Servers视图中的“Publish to the server”按钮,就会把Eclipse管理的Tomcat的配置文件,同步到物理Tomcat的目录中。

分两中情况:

1、把Eclipse管理的Tomcat的配置文件,同步到Tomcat的物理安装目录中。

2、把Eclipse管理的Tomcat的配置文件,同步到一个Eclipse的深层目录(很深),Tomcat使用这份配置文件启动,而不修改原Tomcat安装目录的配置文件。

我们在最后面选择了 第1种。

?

“包视图”中这个叫Servers的“项目”是可以删除的,当发生了删除 Wtp的Tomcat server管理配置项目失败,而有残留时,请删除“包视图”中这个叫Servers的“项目”。在新建 Wtp的Tomcat server管理配置项目 时,又会再出来。

?

?

?

四、配置 Wtp的Tomcat server管理配置项目

----------------------------------------

在Servers视图中, 双击新添加的 Wtp的Tomcat server管理配置项目,打开如下界面:

看上图中, 几个红色部分是重点。

?

默认情况是:

如果不修改这里而使用默认值 ,也是可以发布web应用程序到Tomcat并启动运行的。使用默认值的结果是:

把Eclipse管理的Tomcat的配置文件,同步到一个Eclipse的目录(很深),Tomcat使用这份配置文件启动,而不修改原Tomcat安装目录的配置文件。

“发布项目”时,会copy一份编译好的项目代码到\.metadata\.plugins\org.eclipse.wst.server.core\tmpN\wtpwebapps\目录 。

?

?

我们要改成:

这里我们要修改它的,强化对Tomcat的控制力。有时我们还要进入 Tomcat的物理安装目录做一些工作呢。要改成:

把Eclipse管理的Tomcat的配置文件,同步到Tomcat的物理安装目录中conf目录,覆盖原Tomcat安装目录的conf目录的配置文件,加强对Tomcat的控制。

“发布项目”时,会copy一份编译好的项目代码到Tomcat的物理安装目录的webapps目录 。

?

注意:

大家看上图, 几个重点选项是灰色的不可操作,是因为 Wtp的Tomcat server管理配置项目 中有已发布的项目。

先清理先前发布过的项目,就可以操作了。按照图片中的样子修改,就达到目的了。

?

?

?

五、运行管理

--------------------------

在Servers视图中, 右击 Wtp的Tomcat server管理配置项目,弹出菜单如下:

可进行Tomcat的运行管理。

?

?

?

重启不用先停止 ,直接按启动就行。

下图中的红线框住的一个“服务器”图标,是“Publish to the server”,是发布Tomcat配置文件用的,很重要,很重要。

?

?

六、不能发布项目问题的解决

----------------------------------

只有“动态的Web项目”才可以“发布”到tomcat中,如果你的项目不能“发布”,说明不是“动态的Web项目”。

按如下调整:

鼠标右击项,选中properties,弹出如下窗口,按下图操作,设置为“动态的Web项目”。

如果在编译时, 报错“找不到目标运行时”,也按下图,设置“目标运行时”。就可以了。

?

?

?

?

?

?

?

1 楼 star022 昨天  
简单就是美,可以试试jetty:
Update Site - http://run-jetty-run.googlecode.com/svn/trunk/updatesite
2 楼 rocker100 昨天  
web容器的配置是开发人员很重要的一件事,谢谢这么详细的图文并茂的文章。
3 楼 hbezwwl 昨天  
还用发布的方式,说明对tomcat太不了解了,这种方式是多种方式里面最差的。
4 楼 elf8848 昨天  
rocker100 写道
web容器的配置是开发人员很重要的一件事,谢谢这么详细的图文并茂的文章。

注意:以上所说“发布项目”,其实是在Tomcat的Server.xml配置文件中加入以下一行。

<Context docBase="registration-main" path="/registration-main" reloadable="true" /></Host>

并没有真正的copy文件,只是“指过来”
5 楼 elf8848 昨天  
hbezwwl 写道
还用发布的方式,说明对tomcat太不了解了,这种方式是多种方式里面最差的。

发布的只有“配置文件”
6 楼 MartsonFan 昨天  
不用把项目发布到tomcat的安装目录下面,只需要在%CATALINA_HOME%\config\Catalina\localhost\目录下添加一个xml文件,指向项目所在路径的WebContext目录即可,例如一个名称为TMSP的项目,在上述目录下添加文件,文件名为TMSP.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/TMSP" docBase="F:\code\ws\TMSP\WebContent" reload="true" >
</Context>
path是项目的上下文件路径,客户端使用http://localhost:8080/TMSP进行访问。
docBase是项目开发时所在的目录。
用这种方式配置项目,可以把Eclispe和tocmact集成起来,在Eclipse上启动tomcat。每次修改项目后都不用重新发布,而且支持热启动,修改代码保存后,tomcat自动重新加载项目,可以很方便看到修改后的效果。
7 楼 骨之灵魂 昨天  
少写了一步  把 buildpath 指到 web-inf 目录里
8 楼 kjj 昨天  
其实wtp自带这种功能巨弱,不能自动copy项目点jar到lib下,
修改了class发布要重启,关联项目的class不会自动发布,等等,现在一直在用一楼的run,除了jetty和tomcat有极少差别之外,这个插件不得说是现在最方便的!!
tomcat下有一款就更好了!!
9 楼 xinannansha 昨天  
启动server后,eclipse还是会拷贝一份项目代码到deploy目录
不知博主有何特殊配置
10 楼 fulink 昨天  
其实并没有博主说的指过来:
工作目录\.metadata\.plugins\org.eclipse.wst.server.core\tmp?\wtpwebapps\
下面就有项目编译好的代码。有代码有改动,这里就也就会相应的改动
<Context reloadable="true" 最好改成false
11 楼 iwangxiaodong 昨天  
用了几个月的Eclipse 4.2,发现了个大bug,导出war的时候竟然包括java源码,而我明明没有选择导出源码项,eclipse突然让人觉得不靠谱!
12 楼 elf8848 昨天  
kjj 写道
其实wtp自带这种功能巨弱,不能自动copy项目点jar到lib下,
修改了class发布要重启,关联项目的class不会自动发布,等等,现在一直在用一楼的run,除了jetty和tomcat有极少差别之外,这个插件不得说是现在最方便的!!
tomcat下有一款就更好了!!



关联项目的class不会自动发布 --- 确实是这样,有这个问题。

不能自动copy项目点jar到lib下--- 不存在这个问题。

一直期待有一款更好的,但现在还没有。
13 楼 elf8848 昨天  
elf8848 写道
rocker100 写道
web容器的配置是开发人员很重要的一件事,谢谢这么详细的图文并茂的文章。

注意:以上所说“发布项目”,其实是在Tomcat的Server.xml配置文件中加入以下一行。

<Context docBase="registration-main" path="/registration-main" reloadable="true" /></Host>

并没有真正的copy文件,只是“指过来”


我更正,我说的有误,我已修改文章的相关论述,谢谢大家热心指正。
14 楼 elf8848 昨天  
fulink 写道
其实并没有博主说的指过来:
工作目录\.metadata\.plugins\org.eclipse.wst.server.core\tmp?\wtpwebapps\
下面就有项目编译好的代码。有代码有改动,这里就也就会相应的改动
<Context reloadable="true" 最好改成false


是COPY了一份编译好的项目代码,发布到tomcat中。
我已修改文章的相关论述,谢谢大家热心指正。
15 楼 artair 昨天  
楼主,基本版里是没有wtp的!需要安装。
我多种方法都使用,这种每次重新部署的方式,还是很有价值的。


hbezwwl 写道
还用发布的方式,说明对tomcat太不了解了,这种方式是多种方式里面最差的。

发布的方式自有它的好处,比如可以清理原有的部署。
elf8848 写道
rocker100 写道
web容器的配置是开发人员很重要的一件事,谢谢这么详细的图文并茂的文章。


注意:以上所说“发布项目”,其实是在Tomcat的Server.xml配置文件中加入以下一行。

<Context docBase="registration-main" path="/registration-main" reloadable="true" /></Host>

并没有真正的copy文件,只是“指过来”


楼主所讲的方法,并不是指向,而是把编译后的文件copy到tomcat工作目录下,每次部署的时候,都清理tomcat的工作目录,然后再次copy一套过去。


kjj 写道
其实wtp自带这种功能巨弱,不能自动copy项目点jar到lib下,
修改了class发布要重启,关联项目的class不会自动发布,等等,现在一直在用一楼的run,除了jetty和tomcat有极少差别之外,这个插件不得说是现在最方便的!!
tomcat下有一款就更好了!!


其实是可以自动发布的,而且也可以将依赖包复制到lib下。当然前提是依赖jar不是指向而是直接复制到工程的lib下。看楼主的eclipse版本,工程的lib下jar文件自动会被加载成依赖的。

16 楼 elf8848 昨天  
artair 写道
楼主,基本版里是没有wtp的!需要安装。
我多种方法都使用,这种每次重新部署的方式,还是很有价值的。

感谢artair的评论 ,本文是Eclipse 3.6 J2EE版
  相关解决方案