проблема с плагином разработчика GWT 2.0 Chrome

Недавно я обновил GWT SDK с 1.5.3 до 2.0.0 для проекта. Мне удалось исправить все проблемы, кроме одной.

Я не могу использовать режим разработки с хромом. Страница входа в мое приложение загружается отлично, но когда я пытаюсь войти в систему (т.е. сделать RPC), я получаю следующую ошибку:

com.google.gwt.core.client.JavaScriptException: (Error): Error calling method on NPObject! stack: Error: Error calling method on NPObject! at eval at eval (native v8natives.js:132:1) at unknown source at __gwt_jsInvoke (http://grapple:8087/hosted.html:70:35) at Array.0 (eval at eval (native v8natives.js:132:1)) at Object. (unknown source) at __gwt_jsInvoke (http://grapple:8087/hosted.html:70:35) at Array.1 (eval at eval (native v8natives.js:132:1)) at Object. (unknown source) at __gwt_jsInvoke (http://grapple:8087/hosted.html:70:35) at Array.1 (eval at eval (native v8natives.js:132:1)) __gwt_ObjectId: 2835 at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:195) at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:120) at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:507) at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:284) at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107) at com.google.gwt.user.client.rpc.impl.SerializerBase$MethodMap$.deserialize$(SerializerBase.java) at com.google.gwt.user.client.rpc.impl.SerializerBase.deserialize(SerializerBase.java:124) at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.deserialize(ClientSerializationStreamReader.java:116) at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:61) at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter$ResponseReader$8.read(RequestCallbackAdapter.java:104) at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:197) at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287) at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:396) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103) at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157) at com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForReturn(BrowserChannel.java:1713) at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:165) at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:120) at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:507) at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:264) at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91) at com.google.gwt.core.client.impl.Impl.apply(Impl.java) at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:188) at sun.reflect.GeneratedMethodAccessor231.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103) at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157) at com.google.gwt.dev.shell.BrowserChannel.reactToMessages(BrowserChannel.java:1668) at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:401) at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:222) at java.lang.Thread.run(Thread.java:619)

Я использую Chrome 4.0.295.0 и плагин разработчика 1.0.7263.

Режим разработки отлично работает в FF и IE.

Вы хоть представляете, что происходит?

Спасибо.


person Isac    schedule 19.01.2010    source источник
comment
И еще одно: эта страница отлично работает в развернутом Chrome.   -  person Isac    schedule 20.01.2010


Ответы (2)


Не уверен, что это ошибка в плагине разработчика - возможно, это ограничение браузера.

По мере того, как ваше приложение становится более сложным, в конечном итоге будет достигнут предел размера стека браузера. Некоторые браузеры имеют более высокие ограничения, чем другие (см. http://tests.novemberborn.net/javascript/callstack-size.html в различных браузерах). Насколько мне известно, у Safari самый высокий уровень, и для него есть официальный плагин разработчика GWT - по крайней мере, на платформе Mac.

Плагин (на всех платформах) добавляет значительные накладные расходы в стек (поэтому эта проблема обычно исчезает в производственной среде), поэтому, если вы хотите продолжить разработку приложения в режиме отладки, лучшим советом, вероятно, будет реструктуризация кода. Вероятно, вы пытаетесь одновременно обрабатывать слишком много данных на стороне клиента.

person nelisa    schedule 10.08.2011

Похоже, что у плагина Chrome есть проблемы с глубоко вложенными и сериализованными объектами в devmode. В своем приложении я отправляю глубокое дерево, и оно не работает в Chrome, но успешно в Firefox.

person akarnokd    schedule 11.06.2010