2014-02-12 45 views
1

我们有GWT/GXT 3应用程序(主要是从gxt 2迁移过来的,但仍有一些尚未更新的小区域)。该应用程序将挂载在它的加载屏幕上(只是一个带有旋转gif的div)并且没有完成,但是这仅仅发生在IE8上,仅仅是我们的客户之一。GWT在应用程序启动之前挂起onModuleLoad

它没有达到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

客户可能既具有代理和防火墙两者都不我们可以控制。

编辑 加入何况这是一个活的系统,该系统有问题

+0

在开发模式选项卡中是否有任何错误? – outellou

+0

@Moh对不起,我应该指定这是一个已经被我们其他客户使用的实时系统,它只是这个客户端,它不工作。然而,当在开发模式下运行时,在启动时没有错误(有一些关于一些非标准的css规则的警告,但是关于它的那个) – AbstractChaos

+0

是否安装了一个chrome框架? useragent看起来像 –

回答

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,没有什么在这个方法中发生的将被记录。

+0

谢谢你的回答,问题是onModuleLoad永远不会到达,我们有一个日志条目在一开始,它不会记录在这种情况下。 – AbstractChaos

+0

如果这个记录器会导致一个异常,你将无法看到它。一般来说,设置UncaughtExceptionHandler是一个好主意 –

相关问题