GWT在onModuleLoad之前在启动应用程序时挂起

时间:2014-02-12 16:40:39

标签: java gwt gxt

我们有GWT / GXT 3应用程序(主要是从gxt 2迁移但仍有一些尚未更新的小区域)。该应用程序将挂在其加载屏幕(只是一个带有旋转gif的div)并且不完整,但这仅在IE8上仅针对我们的一个客户进行。

它没有到达onModuleLoad来启动应用程序并且在下载javascript期间似乎挂起。 我可以做更多调试吗?

更多信息

用户代理 - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; chromeframe/23.0.1271.95; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1; .NET4.0C; .NET4.0E; InfoPath.2)

正在使用的软件 - GWT, GXT, Spring, Comet, JMS

客户可能同时拥有我们无法控制的代理和防火墙。

修改 除此之外,这是一个适用于所有其他客户的实时系统,对于有问题的客户来说只是一个间歇性的问题

1 个答案:

答案 0 :(得分:2)

您可以设置uncaughtExceptionHandler并在屏幕上显示错误。

看看这个例子: https://github.com/dankurka/mgwt.showcase/blob/master/src/main/java/com/googlecode/mgwt/examples/showcase/client/ShowCaseEntryPoint.java

@Override
public void onModuleLoad() {
    GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
        @Override
        public void onUncaughtException(Throwable e) {
            Window.alert("uncaught: " + e.getMessage());
            String s = buildStackTrace(e, "RuntimeExceotion:\n");
            Window.alert(s);
            e.printStackTrace();
        }
    });
    new Timer() {
        @Override
        public void run() {
            start();
        }
    }.schedule(1);
}

如果在onModuleLoad中设置UncaughtExceptionHandler并且不使用Timer,则不会记录此方法中发生的任何事情。