Thursday, February 10, 2011

GWT exception in Hosted Mode

I work with GWT version 1.7.0. It's old but our product requires it. Recently I had to debug using Hosted mode. During Hosted mode startup I had an exception

2011-02-08 17:04:31,578 [FATAL] Uncaught Exception:
com.google.gwt.core.client.JavaScriptException:
(TypeError): Object doesn't support this property or method.
 number: -2146827850
 description: Obiekt nie obsługuje tej właściwości lub metody.
    at com.google.gwt.user.client.impl.DOMImplStandard.initEventSystem(Native Method)
    at com.google.gwt.user.client.impl.DOMImplMozilla.initEventSystem(DOMImplMozilla.java:39)
    at com.google.gwt.user.client.impl.DOMImpl.maybeInitializeEventSystem(DOMImpl.java:111)
    at com.google.gwt.user.client.impl.DOMImplStandard.sinkEvents(DOMImplStandard.java:140)
    at com.google.gwt.user.client.impl.DOMImplMozilla.sinkEvents(DOMImplMozilla.java:27)
    at com.google.gwt.user.client.DOM.sinkEvents(DOM.java:1221)


After some investigation I found the reason.
During development, for performance reasons I compile my GWT apps only for Firefox. So this was the case. You must know that in earlier versions of GWT (and so in 1.7.0), application is displayed in special window with embedded Internet Explorer. And now you might look closer to the stacktrace above and see that there are some Mozilla classes involved and that's wrong because for IE we should have only IE classes! So that's the cause I had exception.

So if you want to run Hosted mode you have to compile your GWT application at least with IE support. Add this to you *.gwt.xml config file



<set-property name="user.agent" value="ie6,ie8" />


Or leave it without declaring user.agent so it would be compiled for all supported browsers. Too shame that GWT doesn't warn if it was not compiled for current browser.


If you still have problems with mentioned exception look at an issue in GWT bug tracker.

No comments:

Post a Comment