我已经将一个Web应用程序从MyEclipse迁移到了Eclipse WTP,我现在正处于迁移后对代码库和网页的第一次重大升级过程中,坦白地说,这让我很生气,因为它保存了一个JSP页面导致重新部署WHOLE应用程序,因为它需要时间并且我的后端连接不能在会话对象的序列化 - 反序列化中存活(这是非常重要的修复)。除此之外,JSP编辑器非常慢,所以我经常不得不停下来让编辑赶上来确定我的编辑在使用JavaServer Faces的小型JSP中的位置。禁用验证没有帮助。
Eclipse Dynamic Web Project依赖于几个库eclipse项目,所以我不能只告诉例如Jetty使用WebRoot文件夹,因为类路径中缺少多个依赖项。
问题是:
我可以使用Tomcat 5.5或Jetty 6作为服务器。
编辑:有问题的JSP页面包含JSF标签(myfaces 1.1.4,tomahawk 1.1.9),如果这有所不同?
答案 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插件将您的bin
和webroot
目录与您的servlet容器同步。您必须使用原始安装,而不是这种方式使用工作区元数据。然后,在调试模式下启动服务器后,所有内容都已热部署。
我已经成功地将这种方法用于glassfish 2。
另一件事是检查Servers
项目中服务器的配置选项(它应该有一个文件夹)。可能会出现关闭某些debug
或hot-deploy
选项的情况。
至于JSP编辑器的速度 - 嗯,禁用验证是第一件事,你已经完成了。老实说,我的jsp页面(包含jsf标签,实际上使用facelets)在速度方面没有任何重大问题。也许使用全新安装?
答案 2 :(得分:2)
如果需要,您可以在Eclipse中禁用自动发布:
这将避免“每次保存后发布”问题。但是,如果关闭此选项,则必须在您希望更改显示在服务器中的任何时候手动部署。
答案 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)重新检查了这一点,我无法重现这个问题:
(这不会修改Eclipse下我的Tomcat 服务器的任何特定设置)。
问题看起来与您的项目或机器有关。是否在您机器上的任何项目中出现?你能在另一台机器上重现吗?