jsinterop gwt jsni gwt-hosted-mode

jsinterop - gwt js interop



Algo distinto de un int fue devuelto por el método JSNI (1)

Estoy ejecutando una aplicación GWT en modo alojado. Esporádicamente recibo una HostedModeException extraña quejándose del tipo del valor JS devuelto por JSNI. A veces es durante la deserialización:

com.google.gwt.dev.shell.HostedModeException: Something other than an int was returned from JSNI method ''@com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader::readInt()'': JS value of type boolean, expected int at com.google.gwt.dev.shell.JsValueGlue.getIntRange(JsValueGlue.java:266) at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:144) at com.google.gwt.dev.shell.ModuleSpace.invokeNativeInt(ModuleSpace.java:247) at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeInt(JavaScriptHost.java:75) at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.readInt(ClientSerializationStreamReader.java)

a veces en

com.google.gwt.dev.shell.HostedModeException: Something other than an int was returned from JSNI method ''@com.google.gwt.user.client.impl.DOMImpl::eventGetTypeInt(Ljava/lang/String;)'': JS value of type null, expected int at com.google.gwt.dev.shell.JsValueGlue.getIntRange(JsValueGlue.java:266) at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:144) at com.google.gwt.dev.shell.ModuleSpace.invokeNativeInt(ModuleSpace.java:247) at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeInt(JavaScriptHost.java:75) at com.google.gwt.user.client.impl.DOMImpl.eventGetTypeInt(DOMImpl.java) at com.google.gwt.user.client.impl.DOMImpl.eventGetTypeInt(DOMImpl.java:62) at com.google.gwt.user.client.DOM.eventGetType(DOM.java:602) at com.google.gwt.user.client.Event$.getTypeInt$(Event.java:695) at com.extjs.gxt.ui.client.util.BaseEventPreview.onPreviewNativeEvent(BaseEventPreview.java:139)

una vez más en

com.google.gwt.dev.shell.HostedModeException: Something other than a float was returned from JSNI method ''@com.extjs.gxt.ui.client.util.Util::parseFloat(Ljava/lang/String;F)'': JS value of type boolean, expected float at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:118) at com.google.gwt.dev.shell.ModuleSpace.invokeNativeFloat(ModuleSpace.java:235) at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeFloat(JavaScriptHost.java:67) at com.extjs.gxt.ui.client.util.Util.parseFloat(Util.java) at com.extjs.gxt.ui.client.core.El.getFrameSize(El.java:1081) at com.extjs.gxt.ui.client.core.El.setSize(El.java:2702) at com.extjs.gxt.ui.client.widget.BoxComponent.setSize(BoxComponent.java:501) at com.extjs.gxt.ui.client.widget.BoxComponent.setHeight(BoxComponent.java:320)

¿Puede alguien ayudarme con esto? Estoy utilizando GWT 2.4.0, Google Chrome 16.0.912.75 y GWT Developer Plugin 1.0.9738.


Por alguna razón mágica, el cromo funciona muy mal con GWT DevMode. La excepción de puntero nulo aleatorio al analizar JSON, JSNI devuelve errores de tipos cuando se trabaja con GXT, las excepciones de muerte remota son problemas muy comunes. Es un problema conocido y es por eso que la mayoría de las personas no están usando GWT DevMode con Chrome.