10

我已经将一个 Web 应用程序从 MyEclipse 迁移到 Eclipse WTP,我现在正处于迁移后对代码库和网页的第一次重大升级中,坦率地说,保存 JSP 页面会导致重新部署让我发疯整个应用程序,因为这需要时间,而且我的后端连接无法在会话对象的序列化反序列化中幸存下来(修复起来很重要)。此外,JSP 编辑器速度非常慢,所以我经常不得不停下来让编辑器跟上进度,以确定我的编辑在使用 JavaServer Faces 的小型 JSP 中的位置。禁用验证没有帮助。

Eclipse 动态 Web 项目依赖于几个库 Eclipse 项目,所以我不能只告诉例如 Jetty 使用 WebRoot 文件夹,因为类路径中缺少几个依赖项。

问题是:

  • 有没有一种工作方式 - 任何工作方式 - 使用 Eclipse WTP 系统并不意味着每次保存任何文件时都重新部署所有内容?

我可以使用 Tomcat 5.5 或 Jetty 6 作为服务器。


编辑:让 JSP 编辑器能够跟上进度也非常好......


编辑:有问题的 JSP 页面包含 JSF 标记(myfaces 1.1.4,tomahawk 1.1.9),如果这有什么不同?

4

5 回答 5

6

在 Eclipse 的 Tomcat 服务器设置中,您应该启用选项“服务模块而不发布”(见下文如何执行此操作)

这是我使用的解决方案,它使我能够立即查看 JSP 中的更改而无需重新发布或其他任何内容(在 Tomcat 5.5 + 常规动态 Web 项目 + JSP 位于 WebContent 目录中)所以我在开发 Java 应用程序时不会发疯:

这该怎么做:

  • 打开服务器视图
  • 双击您的服务器以打开服务器设置
  • 在“发布”部分(右上角)选择“从不自动发布”选项(如您问题的其他一些答案中所述)以避免在您更改某些内容时执行发布操作
  • 这是最重要的:在“服务器选项”部分(左下角)选择“服务模块而不发布”选项。现在您的更改无需重新部署即可获得

更新:您还应该确保在 Eclipse 中开发时您所依赖的库(那些在您的构建路径上的库)被“复制”到 WEB-INF/lib(通过在 Java EE 模块依赖项中选择适当的 JAR/项目来做到这一点Web 项目的“首选项”对话框中的部分)。有了所有这些设置,tomcat 将从您的工作区项目中运行 Web 应用程序,并将 WebContent 目录作为 Web 应用程序的根目录。

请享用

于 2010-03-19T15:04:40.933 回答
3

我将提出另一个建议,这更像是一种解决方法。

您可以使用FileSyncbin插件将您的webroot目录与您的 servlet 容器同步。您将不得不使用原始安装,而不是这种方式的工作区元数据。然后,在调试模式下启动服务器后,一切都被热部署。

我已经成功地将这种方法与 glassfish 2 一起使用。


另一件事是检查Servers项目中服务器的配置选项(那里应该有一个文件夹)。可能是某些debughot-deploy选项被关闭的情况。


至于 JSP 编辑器的速度——嗯,禁用验证是首先要做的事情,而且您已经做到了。老实说,我的 jsp 页面(包含 jsf 标记,并且实际上使用 facelets)在速度方面没有任何重大问题。也许使用全新安装?

于 2010-03-20T20:50:30.043 回答
2

如果需要,可以在 Eclipse 中禁用自动发布:

  1. 打开服务器视图。
  2. 在视图中双击您的服务器。这将打开服务器概览配置页面。
  3. 找到页面上的“发布”部分(右上角)。
  4. 选择“从不自动发布”选项。

这将避免“每次保存后发布”问题。但是,关闭此功能后,您必须在希望更改显示在服务器中的任何时候手动部署。

于 2010-03-12T14:04:37.270 回答
1

我的建议:

验证您使用的是最新发布的 Eclipse/WTP 和 Tomcat 版本。您可能希望在单独的位置和工作区下载新位。不要去最新和最伟大的里程碑/候选发布......我说的是你可以从http://eclipse.org/downloads/获得的比特......

看看您是否可以使用最简单的动态 Web 项目重现该问题。如果可以,请向 Eclipse.org 提交错误。如果您无法使用最简单的应用程序重现问题,请将您的应用程序加载到这个新的开发环境中,看看是否能解决问题。如果没有,那么问题很可能与您的项目有关。

于 2010-03-18T14:38:49.627 回答
1

这很奇怪,这不是我正在经历的。我使用 Eclipse IDE for Java EE Developers(Build id:20090920-1017)和 Tomcat 5.5.28(以及 Tomcat 6.0.28)重新检查了这个问题,但我无法重现该问题:

  • 修改 Java 文件确实会重新加载上下文~但是~
  • 修改 JSP 不会重新加载上下文

(这无需修改Eclipse 下我的 Tomcat服务器的任何特定设置)。

该问题看起来与您的项目或机器有关。您机器上的任何项目都会出现这种情况吗?你能在另一台机器上重现它吗?

于 2010-03-19T17:50:04.943 回答