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

Tho*_*sen 10 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),如果这有所不同?

Ste*_*oey 6

在eclipse中的Tomcat服务器设置中,您应该启用" 无需发布服务模块 "选项(请参阅下面的如何操作)

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

这该怎么做:

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

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

请享用


Boz*_*zho 3

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

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

我已成功地将这种方法与 glassfish 2 结合使用。


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


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