GWT应用程序仅在IE中抛出“JavaScriptException”,堆栈跟踪没有任何有用的信息

时间:2011-02-17 22:29:08

标签: javascript debugging gwt gxt

我的GWT应用程序在某个时刻抛出JavaScriptException。此问题仅发生在Internet Explorer(运行IE7模式的IE 8和IE 8)中。

堆栈跟踪如下:

com.google.gwt.core.client.JavaScriptException: (Error): Invalid argument.
 number: -2147024809
 description: Invalid argument.
com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:195)
com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:120)
com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:507)
com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:264)
com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
com.google.gwt.core.client.impl.Impl.apply(Impl.java)
com.google.gwt.core.client.impl.Impl.entry0(Impl.java:188)
sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
com.google.gwt.dev.shell.BrowserChannel.reactToMessages(BrowserChannel.java:1668)
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:401)
com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:222)
java.lang.Thread.run(Unknown Source)

调试至少不可能。谷歌告诉我,这可能是由于财产设置不当(即setWidth("190px!")之类的坏字符)或将宽度设置为0px,或者可能是完全不同的东西。

由于问题只出现在IE中,我尝试使用IE开发人员工具进行调试,但却没有提出任何问题。

如何正确调试?

3 个答案:

答案 0 :(得分:2)

这也发生在我身上,这是一场噩梦。正确使用一些GIT / SVN / CVS无论如何真正保存这些情况,达到“它工作的地方”是非常好的。那你现在能做什么:

  • 暂时摆脱所有自定义CSS,看看会发生什么(只留下GWT的普通默认CSS)
  • 在外部服务器上调试,它不是那么慢
  • 尝试重现“特定点”并注释掉任何相关的行
  • 正确检查生成的网站(IE的一些类似firebug的工具,我希望这样的东西存在)
  • 如上所述,使用漂亮/详细的输出样式
  • 从GWT读取生成的JavaScript从未解决我的问题:(通常是CSS相关的东西或来自GWT的DOM的自定义用法
  • 让人们(或自己动手)定期测试各种浏览器,这只是nobrainer

答案 1 :(得分:0)

使用漂亮的输出样式为Web模式编译应用程序。然后,您可以获得有关此异常的更多信息。

答案 2 :(得分:0)

此代码对我造成了同样的错误

flexTableWidget.getElement().getStyle().setBackgroundColor("rgba(255,255,255,0.5)");