【问题标题】:How to migrate a a custom sublass of GWT DevMode to GWT 2.7.0 Super dev mode如何将 GWT 开发模式的自定义子类迁移到 GWT 2.7.0 超级开发模式
【发布时间】:2015-05-07 04:13:10
【问题描述】:

很长一段时间以来,我们使用 com.google.gwt.core.ext.ServletContainerLauncher 和 com.google.gwt.dev.DevMode 的自定义子类在 Eclipse 中运行基于 GWT 的应用程序。

这是为了让我们能够运行我们的自定义(最新)Jetty,并且随着时间的推移,它给了我们一些其他控制权,即在 Eclipse 中启动服务器的方式略有不同,以便允许文件在 Eclipse 项目中传播成为他们最终生产的地方。

这些有效地替换/重新实现/覆盖 JettyLauncher.java 和 DevMode.java 的位

现在我正在尝试升级到 GWT 2.7,但这不再有效。具体来说,它的开头是:

Started code server on port 9997
Loading modules
   com.<...>.ClientDev
      Public resources found in...
      Translatable source found in...
Starting HTTP on port 8008

我得到的只是臭名昭著的“GWT 模块”客户端“可能需要(重新)编译”。我看到 Eclipse 启动配置现在提供了超级开发模式和“经典”模式之间的选择。我还没有改变它(仍然是“经典”),但我们的想法是我们需要进入超级开发模式(主要是因为速度和支持,但会错过 IDE 中的经典功能和调试)。

我试图找到有关更改(或需要在代码中更改,例如我的代码)以升级到 2.7 的文档,但到目前为止失败了。有人可以帮忙吗?

谢谢!

【问题讨论】:

  • 额外说明 - 如果我只是在此启动配置上启用超级开发模式,它会在启动时失败。更具体地说,我观察到(新)CodeServer 在我启动应用程序后立即在单独的线程上启动。当它完成它的工作时,它失败并出现 java.lang.NoSuchMethodError: org.eclipse.jetty.server.AbstractConnector: method ()V not found in the WebServer.start() method
  • 另一个更新 - 删除 gwt-unitCache 和(GWT 2.7!)预编译代码后,我可以启动旧/经典开发模式。我正在尝试生产模式/再次预编译。

标签: gwt google-plugin-eclipse gwt-super-dev-mode gwt-2.7


【解决方案1】:

我没有找到任何文档,但我成功开始了。以下是我必须做的事情:

  1. 实际上我根本不需要更改我的启动器/开发模式代码。
  2. 必须修改 Eclipse *.launch 文件以添加 -nosuperDevMode 参数。由于它自己的嵌入式容器和我的新版本之间的冲突,我无法让超级开发模式在其中工作,我不想花时间解决这个问题。
  3. 使用以下参数创建一种独立启动 com.google.gwt.dev.codeserver.CodeServer 的新方法:-bindAddress [same-address-as-for-the-main-one] -port 9876 -launcherDir [war-folder-path] [GWT-module-name]
  4. 清除所有cookie。 CodeServer 有缓冲区溢出(http 错误 413),因为我有太多的 cookie。
  5. 直接访问 CodeServer URL 以将两个小书签(Dev Mode On、Dev mode Off)添加到浏览器。
  6. 我预编译了我的应用程序一次,只是为了确保我有结构,但我认为这不是必需的。
  7. 先启动我的服务器。
  8. 第二个启动代码服务器。
  9. 使用小书签打开开发模式。
  10. 访问我的应用程序。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-09-07
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多