我曾经在我的机器上单独运行Tomcat。我有一个Ant脚本可以重建我的项目,在本地部署它,然后重启Tomcat。这一切都运行正常,但我无法在Eclipse中调试Web应用程序。
所以我学会了如何在Eclipse中设置Tomcat并让我的web应用程序运行。现在问题是我不完全理解如何以这种方式管理它。 Eclipse设置为根据更改自动构建我的项目,但这些更改似乎并不总是反映在Web应用程序中。有时我必须手动构建项目并手动“清理”服务器以反映更改。
是否有关于如何管理此设置的规则?例如,如果我只更改JSP,那么它会自动同步吗?如果我更改了servlet类,那么我需要手动重建项目吗?这些规则是否一致,或者我应该每次只手动重建和清理?
如果有人能给我最好的练习规则或者给我一个很好的资源来学习如何管理这个环境,我真的很感激。
PS。我正在使用Eclipse 3.4.1 Java EE包和Tomcat v5.5
答案 0 :(得分:5)
您可以按照提及的方式使用Eclipse和Tomcat。首先是如何设置它的基础知识:
您可以运行服务器并测试它,就像在Eclipse之外运行Tomcat一样。如果在调试模式下运行服务器,则可以设置断点并逐步执行代码。
至于何时需要重新启动服务器Eclipse通常非常适合自动部署更改。您几乎不需要重新启动以更改jsp页面。如果更改类,它将自动部署更改(通常),如果更改方法的主体。如果更改类的签名(添加或删除方法或更改方法),您几乎总是需要重新启动。对配置文件(web.xml或类似文件)的任何更改也几乎总是需要重新启动。
要重新启动,只需单击“服务器”视图中的“调试”或“运行”按钮。您的所有更改都将重新部署到Tomcat中。
需要注意的一点是,在默认配置中,不会使用TOMCAT_HOME中的“webapp”目录。相反,它将使用Eclipse工作区目录下的文件夹(WORKSPACE / .metadata / .plugins / org.eclipse.wst.server.core / tmp0)。
答案 1 :(得分:0)
通常,您应该重新发布应用程序以获取最新更改,不要忘记首先与文件系统同步,以防您的文件经过外部修改。 您可以指定在修改后自动重新加载应用程序,在服务器配置项目的server.xml中查找自动重新加载属性。设置为true时,tomcat将自动重新加载您的应用程序。顺便说一下,这并不总是一个好主意。 修改后的JSP应该自动运行,无需重启applciation。
答案 2 :(得分:0)
如果更改已加载和使用的类的结构(添加/删除成员,更改方法签名等),则不会反映代码更改。这不是eclipse问题,而是JVM问题。如果进行简单的代码更改(如现有方法中的逻辑更改),则更改将在编译和重新部署类后生效。 无论如何,如果更改公共常量,则必须重建项目。
答案 3 :(得分:0)
我发现有两件事需要理解:
Eclipse不会自动意识到文件是否在Eclipse之外进行了更改。单击项目上的刷新就可以了,F5也是如此。您也可以将设置更改为自动刷新,然而,这不会立即检测到更改(我的直觉表示延迟时间长达10秒)
使用服务器具有“发布”文件到Tomcat的概念。这通常会在任何更改后的一秒钟内自动发生。更改许多类可能会导致许多服务器重新加载,如果上下文重新加载需要一些时间(如复杂的Spring应用程序那样),这可能会拖累。所以我将设置更改为不自动发布(双击服务器实例)