Отладка приложения Google Web Toolkit, которое имеет ошибку при развертывании на Google App Engine

У меня есть приложение Google Web Toolkit, которое я развертываю на Google App Engine. В развертываемом приложении я получаю ошибку JavaScript Uncaught TypeError: Cannot read property 'f' of null. Это походит на JavaScript, эквивалентный из Java NullPointerException.

Проблема состоит в том, что JavaScript GWT запутывается, таким образом, невозможно отладить в браузере, и я не могу воспроизвести ту же проблему в размещенном режиме, где я мог использовать отладчик Java. Я думаю причина, я только вижу, что ошибка на развертываемом приложении состоит в том, что база данных, которую я использую на сервере GAE, инициировала что-то по-другому, чем тестовая база данных, которую я использую во время тестирования и разработки.

Так, какие-либо идеи о лучшем способе продолжиться? Я думал о следующих вещах:

  • Разверните non-obsfucated версию моего приложения. Несмотря на большой поиск с помощью Google, я не могу выяснить, как сделать, это использование автоматического развертывает сценарий, которому предоставляют Google Eclipse Plugin. Кто-либо знает?
  • Загрузите и скопируйте мои данные GAE в локальный сервер
  • Так или иначе укажите на мой код разработки для использования сервера GAE для данных вместо локальной тестовой базы данных. Это походит на лучшую идею...

Кто-либо может предложить, как продолжить двигаться здесь?

Наконец, существует ли способ поймать эти ошибки JavaScript на рабочем сервере и зарегистрировать их где-нибудь? Без входа я не должен буду так или иначе знать, есть ли у моих пользователей ошибки, которые не происходят на сервере. GWT.log () функция автоматически разделяется из производственного кода...

7
задан user27478 14 April 2010 в 19:48
поделиться

1 ответ

1) Если вы можете реплицировать необходимое состояние вашей базы данных GAE локально, запустите скомпилированную версию javascript на вашем локальном компьютере. Это почти наверняка приведет к той же ошибке, но это намного дешевле, чем полное развертывание AppEngine. Для этого скомпилируйте приложение с помощью компилятора GWT, затем запустите его в обычном режиме, а затем укажите в браузере указанный адрес без части ? Gwt.codesvr = 127.0.0.1: 9997 .

2) Используйте стиль PRETTY или стиль DETAILED с компилятором GWT, чтобы получить более удобный JavaScript. Если вы скомпилируете локально с этим флагом один раз, то при развертывании в AppEngine (с подключаемым модулем Eclipse) будет отправлена ​​та же самая не обфусцированная версия.

3) Настройте свой код ( Window.alert () отлично работает), чтобы точно определить, где происходит ошибка. Это особенно полезно, чтобы найти, где выполнение javascript отличается от выполнения режима хоста.

4) Ускорьте процесс компиляции, сохранив только одну перестановку. Посмотрите, как это сделать: Как мне ускорить компилятор gwt?

5) Ошибки Javascript, которые не появляются в разрабатываемой версии или в модульных тестах (почти всегда) из-за ошибки в GWT, после небольшого изучения, зайдите на форум GWT или в систему отслеживания проблем и посмотрите, известна ли это ошибка и есть ли обходной путь.

4
ответ дан 7 December 2019 в 14:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: