2009-04-24 62 views
9

我曾经在我的机器上单独运行Tomcat。我有一个Ant脚本,可以重建我的项目,在本地部署它,然后重新启动Tomcat。这一切工作正常,但我无法调试Eclipse内的Web应用程序。如何正确管理Eclipse内部的Tomcat Web应用程序?

所以我学会了如何安装Tomcat的Eclipse内,得到了我的web应用程序的运行。现在问题是我不完全理解如何以这种方式管理它。 Eclipse设置为根据更改自动构建项目,但这些更改似乎并不总是反映在Web应用程序中。有时我必须手动构建项目并手动“清理”服务器才能反映更改。

是介于有规则有关如何管理这个设置?例如,如果我只更改一个JSP,那么它会自动同步?如果我更改了一个servlet类,那么我需要手动重建该项目?这些规则是否一致,或者我应该每次都手动重建和清理?

我真的很感激,如果有人可以给我最好的做法规则或指向我一个很好的资源,学习如何管理这个环境。

PS。我使用Eclipse 3.4.1的Java EE包和Tomcat V5.5

回答

5

您可以按照您提及的方式使用Eclipse和Tomcat。首先是如何设置它的基础知识:

  1. 在Servers视图中建立一个新的Tomcat服务器指向您TOMCAT_HOME
  2. 确保您的项目是一个Eclipse“网络工程”。您可能需要创建一个虚拟文件并复制.settings中的一些文件(查看wst文件)。
  3. 右键单击服务器视图中的服务器和“添加和删除项目...”以将项目添加到服务器,将项目部署到Tomcat。

您可以运行服务器并对其进行测试,就像在Eclipse之外运行Tomcat一样。如果以调试模式运行服务器,则可以设置断点并逐步执行代码。

至于何时您需要重新启动服务器的Eclipse通常是有关自动部署的变化相当不错的。几乎不需要重新启动对jsp页面的更改。如果你改变一个类,它会自动部署更改(通常),如果你改变方法的主体。如果您更改类的签名(添加或删除方法或更改其参数),则几乎总是需要重新启动。对配置文件(web.xml或类似文件)的任何更改也几乎总是需要重新启动。

要重新启动,只需点击服务器视图中的“调试”或“运行”按钮。所有更改将被重新部署到Tomcat中。

有一点需要注意的是,在默认配置中,TOMCAT_HOME中的“webapp”目录将不会被使用。相反,它将使用Eclipse工作空间目录下的文件夹(WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0)。

0

通常你应该发布应用程序,以获得最新的变化,不要忘了与文件系统第一的情况下,extrernally修改您的文件进行同步。 您可以指定修改后自动重新加载应用程序,请在服务器配置项目的server.xml中查找自动重新加载属性。当设置为true时,tomcat将自动重新加载你的应用程序。顺便说一下,这并不总是一个好主意。 修改后的JSP应该自动工作,不需要重新启动应用程序。

0

如果更改已加载和使用的类(添加/删除成员,改变方法签名等)的结构代码的更改将不会体现出来。这不是一个日食问题,而是一个JVM问题。如果您进行简单的代码更改(例如现有方法内的逻辑更改),那么您的更改将在编译并重新部署类后生效。 无论如何,如果你改变一个公共常量,你必须重建你的项目。

0

我发现了两件事情重要的是理解:

  • 的Eclipse如果文件被Eclipse之外改变不会自动实现。点击刷新项目就可以做到这一点,F5也是如此。您也可以将设置更改为自动刷新,但是,它不会立即检测到更改(我的直觉认为延迟达10秒)

  • 使用服务器具有将文件“发布”为Tomcat的概念。这通常会在任何更改后的一秒钟内自动发生。更改许多类可能会导致许多服务器重新加载,如果上下文重新加载需要一些时间(如同复杂的Spring应用程序一样),则可能会导致拖动。所以我改变了一个设置不自动发布(双击服务器实例)

相关问题