1

在尝试使用 GWT 超级开发模式时,我遵循了这些准则:

但是,我被困在尝试打开 Super Dev Mode 的步骤:

一旦我完全编译了我的项目,我运行代码服务器和开发模式,进入http://127.0.0.1:8888/myapp.html(没有?gwt.codesvr=127.0.0.1:9997)然后点击书签Dev Mode On。它检测到我的模块,要求我重新编译,出现一个带有消息的玻璃屏幕Compiling MyApp ...,然后什么也没有……没有错误,在 Chrome 或 Eclipse 中都没有堆栈跟踪。只是什么都没有发生。

从文件中调试 js 代码dev_mode_on.js,脚本在第 324 行被中断:

...
function getBindingParameters(module_name, get_prop_map) {
  var session_key = '__gwtDevModeSession:' + module_name;

  --> var prop_map = get_prop_map(); <--
...

一旦函数get_prop_map被调用,就会运行更多的混淆函数,并且调试器会返回。

我知道它仍然是实验性的,但你知道我做错了什么吗?

PS:我正在使用 GWT 2.5、GWT-maven-plugin 2.5 和 Chrome 23.0.1271.64 m

4

2 回答 2

2

我们发现了一个类似的问题并追查了原因,看起来像是 GWT 中未处理的边界情况。

更多信息可以在这里找到:http ://code.google.com/p/google-web-toolkit/issues/detail?id=7894

于 2013-01-15T13:32:07.820 回答
0

我没有答案,但我可以为这类问题提供一些一般性的调试技巧。

目前超级开发模式(从 2.5 开始)在编译时不会向 Web 浏览器报告任何进度。在编译完成之前它不会更新对话框。因此,由于某种原因,您的程序可能非常慢,或者编译停止并且以某种方式没有像通常那样报告错误。

但是,还有其他方法可以监控其进度。编译器日志可通过以下代码服务器首页的链接以网页形式获得;您必须刷新页面才能看到更新。或者您可以查看代码服务器工作目录中磁盘上的日志。(您可以在启动时使用 -workDir 参数设置工作目录。)

另一种方法是从命令行启动代码服务器。来自代码服务器的任何堆栈跟踪都将在那里打印。如果您从那里运行它,您还应该能够查看 Eclipse 或 IntelliJ 中的输出。

从这里您应该能够判断编译器是否很慢,但仍在工作(它仍在打印输出)或实际上已经停止并带有堆栈跟踪。

于 2012-11-18T01:02:19.927 回答