0

我正在尝试在基于 Maven 的 Java webapp 中设置 GWT 开发/托管模式。我通过 Maven Tomcat7 插件 (mvn tomcat7:run-war-only) 启动我的 webapp,它运行良好。此外,通过 mvn gwt:run 启动 GWT 可以正常工作并且没有显示错误。

但是,如果我使用 gwt.codesvr=127.0.0.1:9997 参数访问我的 webapp,我只会在浏览器中看到一个空白页面。有趣的是,页面源包含我的 JSP 的内容,但它只是定义了一些要被 GWT 替换的 div。

我该如何调试这种情况?我还没有找到 GWT 开发模式的任何选项来生成某种日志输出。例如,知道 GWT 代码服务器是否曾经收到过调用会很有趣。目前,我想知道从哪里开始寻找 GWT 开发模式为什么不起作用的任何线索。

4

1 回答 1

2

我最初的问题是,如何调试 Maven GWT 插件,以防它没有做它应该做的事情。以下是在此过程中对我有帮助的一些提示:

  • 通过配置参数将日志级别提高到 ALL
  • 在浏览器中检查(例如通过 Firebug)是否查询了像 devmode.js 和 hosts.html 这样的托管模式文件
  • 插入 Window.alert("..."); 进入 onModuleLoad() 函数以查看 GWT 代码是否已执行
  • 确保您的应用服务器正在执行爆炸战争(例如,在启动应用服务器之前删除打包的 WAR 文件)
  • 应用服务器启动后,不要调用没有 GWT codeserver 参数的页面,因为这已经在 webapp 展开文件夹中生成了一些 GWT 文件,这些文件可能与 GWT 托管模式创建的文件冲突;记下创建了哪些文件并手动删除它们
  • GWT 开发模式似乎不是完全确定的,因为在我的浏览器中强制重新加载页面后我能够让它运行
  • 从一个工作示例开始,例如我在这里分享的示例:https ://github.com/steinsag/gwt-maven-example
于 2012-11-07T20:33:08.403 回答