【问题标题】:How to debug problems with GWT dev/hosted mode?如何调试 GWT 开发/托管模式的问题?
【发布时间】:2012-11-07 14:14:05
【问题描述】:

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

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

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

【问题讨论】:

  • 您是否先编译了您的客户端代码?
  • 当然,我首先执行 mvn clean install,然后在我的服务器中使用 mvn tomcat7:run-war-only 启动它,在浏览器中验证它是否有效,最后附加 gwt.codesvr=127.0。 0.1:9997 参数导致空白页。我直接在 onModuleLoad() 函数的开头添加了一个 Window.alert() ,如果存在代码服务器参数,则不会显示此警报。
  • 你什么时候开始开发模式模块的?
  • 如前所述,我通常在Tomcat完全初始化后启动它。但我也尝试过先启动 GWT 开发模式。
  • @Sebi:浏览器的开发控制台有错误吗?网络访问如何?是否有对devmode.js或hosted.html的请求,是否成功?

标签: java debugging gwt maven


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多