GWT 调试器失去控制

Posted

技术标签:

【中文标题】GWT 调试器失去控制【英文标题】:GWT Debugger loses control 【发布时间】:2013-07-31 18:10:51 【问题描述】:

我设法将 GWT 调试器链接到远程应用程序,但我认为我的配置有问题。

在参数中我指定了 -startupUrl 并且调试只适用于这个 URL。 一旦我移动到另一个页面(同一个应用程序),模块就会被卸载,我不再处于“调试”模式。 要调试应用程序的不同页面,我必须更改 -startupUrl 并重新启动 GWT 开发模式,但这会破坏正常流程。

有什么建议吗?

谢谢

【问题讨论】:

“搬到另一个区域”是什么意思?以及“移动到另一个区域”后的启动网址和网址如何? “另一个区域”是指不同的页面。例如,如果我的 startupUrl 是 ext_host:1234/appName/page1.html,我可以调试此页面。如果这个页面指向另一个页面,在接下来的页面中我将无法调试。当我在第一页时,URL 类似于 ext_host:1234/appName/page1.html?gwt.codesrv=172.25.1.12:9997 但对于以下内容,它将是 ext_host:1234/appName/page2.html 为什么投反对票?一年后? 【参考方案1】:

调试您的应用程序,它需要在 DevMode 下运行(代码在 JVM 中作为 Java 运行,并通过您安装在那里的插件与浏览器通信)。

要在浏览器中触发 DevMode,URL 需要在查询字符串中包含 gwt.codesvr,其值为 DevMode 应用正在侦听的主机和端口。

-startupUrl 传递给 DevMode 只会更容易获得正确的 URL,因为 DevMode 会将适当的 gwt.codesvr 附加到 URL,您可以将生成的 URL 复制/粘贴到浏览器(或要求 DevMode直接在浏览器中打开该 URL)。

如果您有多个 HTML 主机页面并在它们之间移动,那么为了获得无缝体验,您必须将 URL 的 gwt.codesvr 部分传播到另一个页面。

有关 DevMode 的更多信息,请参阅 http://www.gwtproject.org/doc/latest/DevGuideCompilingAndDebugging.html#DevGuideDevMode(不幸的是,它忽略了有关如何通过 URL 中的 gwt.codesvr 触发 DevMode)

【讨论】:

是的,我注意到导航应用程序时 gwt.codesrv 会丢失。但是如何在不修改代码的情况下传播它呢? 你不能自动传播它没有改变你的代码。虽然使用!GWT.isScript()Window.Location.getParameter("gwt.codesvr"),可能还有Window.Location.createUrlBuilder(),但它相当容易。 (注意:gwt.codesvr 并不是真正要查找的唯一参数;如果您使用xsiframe 链接器,则可以使用gwt.codesvr.myModulemyModule 当然是您的模块的名称)。您可以在 *** 或 GWT Google Group 上找到示例代码。 感谢托马斯的帮助

以上是关于GWT 调试器失去控制的主要内容,如果未能解决你的问题,请参考以下文章

需要帮助调试 GWT - Jetty '未知领域'

Intellij Idea 中的 GWT 调试

如何在tomcat上配置gwt应用进行调试?

为啥在调试模式下启动 GWT 时,我的断点不会中断

在远程浏览器中调试 GWT 应用程序

如何使用 Eclipse 调试旧版 GWT 代码