Как узнать, является ли объект «слишком большим» для RPC в GWT и IE8? - PullRequest
5 голосов
/ 08 ноября 2010

У меня есть приложение, которое отлично работает в Firefox, но когда я тестировал в IE8, я получил странную ошибку: 'Stack overflow at line: 0'

После предложения от группы обсуждения GWT, что оно может быть связано с большим/ сложные объекты, возвращаемые из вызовов RPC, я смог сузить проблему до одного из вызовов моего RPC-сервера, который возвращает большой сложный объект.

Если это правда, что ошибка вызванабольшой объект, слишком большой или сложный, откуда мне это знать?Где находится порог «слишком большой»?

Дальнейшие комментарии из обсуждения GWT указывают на то, что объекты коллекций, вероятно, являются проблемой, но это из опыта другого разработчика GWT.Задокументировано ли это где-нибудь документами или командой GWT?

Но даже в этом случае остается вопрос - откуда мне знать, когда он «достаточно мал»?

Ответы [ 3 ]

0 голосов
/ 02 декабря 2010

Лучший способ устранить эту проблему - использовать флаг -compileReport при компиляции кода GWT, здесь есть руководство для разработчика и несколько примеров:

Я использовал его в скрипте ant с GWT 1.6.x и 2.x.

PS: Не зная, с какой версией GWT вы работаете, я не могу предоставить ничего более полезного. Тем не менее, это может быть что-то, что стоит заметить, если вы используете что-то более старое, чем 2.1 - потому что они представили Виджеты представления данных , которые могли бы решить ваши проблемы с объектами, которые "слишком велики".

0 голосов
/ 26 сентября 2013

Я также получал «Переполнение стека в строке: 0» при загрузке моей страницы GWT. В конце концов, приложение жаловалось только на использование URL-адреса режима отладки Eclipse, включая фрагмент? Gwt.codesvr = 127.0.0.1: 9997. После удаления этого фрагмента в URL ошибка исчезла.

0 голосов
/ 17 ноября 2010

Я до сих пор не знаю, есть ли ответ на заданный вопрос о размере объекта, но моя проблема закончилась тем, что у меня были рекурсивные ссылки на другие объекты в объекте, который я возвращал.Ну, не рекурсивный явно, но ссылки в объекте A на объект B, который ссылается на объект A и т. Д. И т. Д. Это была структура семейного дерева, поэтому для каждого индивида существовали карты отношений, которые содержали ссылки на других связанных индивидов, которые имели ссылкиобратно к связанному человеку и т. д. Работает нормально в памяти со ссылками на тот же объект, но, очевидно, JavaScript, который GWT сгенерировал для IE, не смог десериализовать его должным образом.

...