Pull to refresh

Странное поведение dev server при использовании GAE Plugin для Eclipse Indigo (3.7)

Reading time2 min
Views663
Доброго всем времени суток!
Недавно занялся разработкой своего первого приложения на Google App Engine и моментально столкнулся с забавной проблемой — эмулятор сервера GAE, входящий в пакет GAE SDK для Java отказывался применять изменения в коде проекта. Далее описание проблемы и то, как я от нее избавился. Возможно это сэкономит кому-нибудь время

Оперативная обстановка

Возникла необходимость написания своего web-приложения. Опыта в таком деле ноль, но главное в нашем деле — желание. Стал изучать предметную область. Для разработки с оффсайта скачал GAE SDK для Java и решил ринуться в бой. Но так как возраст, в котором хочется все делать из командной строки, дабы докопаться до самой сути происходящего уже давно прошел, решил облегчить себе жизнь связкой Eclipse + GAE Plugin + GWT. Прочитал руководство по установке данного инструмента и решил скачать новенький Eclipse. Система у меня 64-разрядная, Win 7. Скачал на всякий случай две версии IDE (Eclipse Indigo), но так получилось, что закачка 32-разрядной закончилась быстрее. Установил плагин по ссылке dl.google.com/eclipse/plugin/3.7 (заменив на свой страх и риск оригинальную цифру 3.4 из туториала на номер версии Indigo) и создал первый проект с помощью плагина, подключив при этом GAE Java SDK (существует только 32-разрядная версия).

Симптомы

Какое-то время все шло хорошо, пока не понадобилась непосредственно отладка. Гуглоплагин позволяет запускать сервер-эмулятор прямо из Eclipse нажатием на соответствующую картинку отладки. Вот тут-то и начались косяки — изменяю код проекта (сборка автоматическая), запускаю сервер, захожу на localhost:8080, а изменений как ни бывало. Начинаю грешить на автоматическую сборку, отключаю, делаю очистку + сборку вручную, эффект такой же. Стопитсот разовый перезапуск сервера (кнопочкой в Eclipse) все же приводит к тому, что изменения в проекте начинают отображаться в браузере. И самое интересное — отключаю Eclipse, а localhost все еще позволяет на себя зайти… При этом диспетчер задач отдельный процесс сервера не отображает, помогает только убийство javaw.exe.

Лечение

Решил вернуться к любимой командной строке. Благо в GAE SDK есть батник для запуска сервера вручную (параметрами принимает номер порта и путь к каталогу war). При этом от удобного редактирования проекта в Eclipse отказываться не хотелось. Решил править код в IDE, а для запуска сервера написал скриптик. Результат — все изменения в коде после пересборки и перезапуска сервера моментально отображаются в браузере. Вот тут-то меня и посетила мысль о совместимости моей 64-битной оси и связки Eclipse + GAE Plugin (при том, что ранее приложения в 32-разрядной Eclipse разрабатывались вполне успешно).
Результат — запуск 64-разрядной Eclipse + GAE Plugin при том же самом GAE Java SDK устранили проблему с сервером разработки (даже точки останова работают, классная игрушка получилась).

Злоключение

Был потерян целый день. К сожалению описания подобной проблемы с головой в ру(и не только ру)нете не нашел. Так что может быть кому-нибудь сэкономлю время
Tags:
Hubs:
Total votes 2: ↑2 and ↓0+2
Comments2

Articles