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

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

Я не могу использовать режим разработки с chrome. Страница входа в мое приложение загружается отлично, но когда я пытаюсь войти в систему (т. е. сделать 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.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.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.

у вас есть есть идеи, что происходит?

спасибо.

2 ответов


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

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

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


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