使用Eclipse WTP的任何方式都不意味着在更改JSP页面时重新部署_WHOLE_应用程序

时间:2010-03-12 13:05:56

标签: java eclipse web-applications eclipse-wtp

我已经将一个Web应用程序从MyEclipse迁移到了Eclipse WTP,我现在正处于迁移后对代码库和网页的第一次重大升级过程中,坦白地说,这让我很生气,因为它保存了一个JSP页面导致重新部署WHOLE应用程序,因为它需要时间并且我的后端连接不能在会话对象的序列化 - 反序列化中存活(这是非常重要的修复)。除此之外,JSP编辑器非常慢,所以我经常不得不停下来让编辑赶上来确定我的编辑在使用JavaServer Faces的小型JSP中的位置。禁用验证没有帮助。

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

问题是:

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

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


编辑:让JSP编辑器能够跟上它也会非常好......


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

5 个答案:

答案 0 :(得分:6)

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

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

如何做到这一点:

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

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

享受

答案 1 :(得分:3)

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

您可以使用FileSync插件将您的binwebroot目录与您的servlet容器同步。您必须使用原始安装,而不是这种方式使用工作区元数据。然后,在调试模式下启动服务器后,所有内容都已热部署。

我已经成功地将这种方法用于glassfish 2。


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


至于JSP编辑器的速度 - 嗯,禁用验证是第一件事,你已经完成了。老实说,我的jsp页面(包含jsf标签,实际上使用facelets)在速度方面没有任何重大问题。也许使用全新安装?

答案 2 :(得分:2)

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

  1. 打开服务器视图。
  2. 双击您的服务器 视图。这将打开服务器 概述配置页面。
  3. 找到关于的“发布”部分 页面(右上角)。
  4. 选择“从不发布 自动“选项。
  5. 这将避免“每次保存后发布”问题。但是,如果关闭此选项,则必须在您希望更改显示在服务器中的任何时候手动部署。

答案 3 :(得分:1)

我的建议:

确认您使用的是最新发布的Eclipse / WTP和Tomcat版本。 您可能希望在单独的位置和工作区中下载新位。不要去找最新最好的里程碑/发布候选人...我说的是你可以从http://eclipse.org/downloads/得到的......

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

答案 4 :(得分:1)

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

  • 修改Java文件 DOES 重新加载上下文〜但是
  • 修改JSP NOT 重新加载上下文

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

问题看起来与您的项目或机器有关。是否在您机器上的任何项目中出现?你能在另一台机器上重现吗?