使用GWT 2.1的服务代码调试问题

时间:2011-06-14 16:07:09

标签: eclipse gwt jboss

我最近尝试在eclipse中设置新的断点来调试GWT中的服务端代码。出于某种原因,eclipse拒绝查看断点或我所做的新代码更改。在调试器中它会从某个地方打开看起来像是一个ear文件。即使我删除了旧耳朵,编译并重新部署了新的ear文件。我们使用的是GWT 2.1,JBoss 4.3,java 1.6和Eclipse Helios。最后,当我从头创建一个带有代码的新环境时,它开始工作。关于什么是旧代码的任何想法?顺便说一下,我重新启动了我的机器并重启了eclipse,但它也没有任何区别。 谢谢, 詹姆斯

2 个答案:

答案 0 :(得分:1)

调试GWT应用程序的当前状态......实际上并不是很好。有时候它非常慢(开发模式),有时很多垃圾留在网络服务器上。

这可能无法直接解决您的问题,但以下是我的一些建议:

  1. 在GWT编写新的客户端代码(/ client)意味着刷新浏览器
  2. 编写新的服务器代码意味着“重新加载Web服务器”。在“开发模式”选项卡中,Eclipse中的黄色“刷新”按钮很少。这应该反映服务器端所做的所有更改。
  3. Embedded Jetty通常适用于GWT调试。如果你没有做一些特定于jboss-server的东西,它也应该在生产服务器上正常工作。只需确保您的单元测试通过; - )
  4. 您可以在外部服务器上调试GWT应用程序,请参阅this section of documentation(我猜你在JBoss上做)
  5. 重新加载Web服务器时,请务必删除所有旧文件。它发生在我身上,有时会有一些奇怪的旧混合文件(我使用的是Tomcat)。所以你可能想写自己的干净脚本。
  6. 您必须绝对确定您的serever代码甚至已启动!在客户端使用大量的GWT.log(),这将确保您在此。别担心,GWT.log在生产模式中被省略。
  7. 请务必检查客户端页面,有时会发现您的服务器代码无法启动。
  8. 记录每个public void onFailure(final Throwable caught) {的AsyncCallbacks以获取更多信息。
  9. 请勿在开发模式下使用Google Chrome。它比Firefox慢很多。
  10. 否则,如果您使用的是最新版本的应用程序,则Eclipse必须正确停止在断点处。

答案 1 :(得分:0)

我认为JBoss在某种程度上缓存了它的临时文件然后我忘记了添加源代码。这可能是一个JBoss的事情,因为我不记得以前用其他应用程序服务器看到它。

所以在我清除了缓存之后,让我想到源的原因是eclipse会停在我刚设置的调试器的断点上,但我看不到源文件。

在此之前,我显然是在缓存文件中遇到断点,我无法通过设置新的断点来改变它们。这是问题的根本原因。然后通过添加来自耳朵的源代码,我让调试器与代码同步并且它开始正常工作。