Доброго всем времени суток!
Недавно занялся разработкой своего первого приложения на 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 устранили проблему с сервером разработки (даже точки останова работают, классная игрушка получилась).
Был потерян целый день. К сожалению описания подобной проблемыс головой в ру(и не только ру)нете не нашел. Так что может быть кому-нибудь сэкономлю время
Недавно занялся разработкой своего первого приложения на 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 устранили проблему с сервером разработки (даже точки останова работают, классная игрушка получилась).
Злоключение
Был потерян целый день. К сожалению описания подобной проблемы