Как перезапустить Java-сервер Google App Engine в Eclipse?

Хорошо, может быть, я тупой/слепой, но в документах написано «перестроить и перезапустить сервер». Но я нигде не вижу кнопки для этого. Или из любого контекстного меню. И я не могу найти ничего в их документах, объясняющих, как это сделать. Если я просто попытаюсь снова запустить приложение, оно разозлится, потому что App Engine уже работает на нужном порту.

Единственное решение, которое я нашел, - перезапустить Eclipse... есть другие идеи? Скриншот кнопки поможет, если это возможно. :)


person bpapa    schedule 29.04.2009    source источник


Ответы (7)


В eclipse есть представление, содержащее вашу консоль. Если вы нажмете на это, вы увидите вывод STDOUT и STDERR вашего запущенного приложения. В правом верхнем углу должно быть красное поле, которое завершит текущую запущенную программу.

alt t3xt

person Kai    schedule 29.04.2009
comment
К сожалению, это ужасный ответ - рабочий процесс для перезапуска заключается в том, чтобы щелкнуть вкладку консоли, чтобы перенести ее вперед, удалить другие консоли, появившиеся над консолью GAE, нажать красную кнопку, а затем нажать «Пуск» на панели инструментов. Трудно описать, насколько разочаровывает этот ритуал, повторяемый сотни раз в день. К счастью, ответ touch appengine-web.xml работает! - person stickfigure; 02.03.2012
comment
Это ответ, хотя шаги не очень подробные. Если вам нужны более конкретные шаги, я нашел их на следующем сайте hoverdroids.com/errors/google-app-engine/ - person Chris Sprague; 04.02.2016

У меня есть другое и, возможно, более продуктивное решение для вас. Как и в большинстве сред веб-разработки, вы, вероятно, захотите изменить свой исходный код, чтобы сервер Google Appengine перезагрузил для вас новый код.

Вам нужна какая-то версия традиционной команды unix "touch" (если вы работаете в Windows, вы можете загрузить версию с здесь).

Затем перейдите к свойствам проекта, Builders и добавьте новый шаг сборки как «Программа». В разделе «Расположение» введите путь к вашей команде «touch» (например, «D:\bin\UnxUtils\usr\local\wbin\touch.exe» — в системах Posix достаточно просто «touch», так как он уже находится в вашем PATH) и в «Аргументах» введите что-то вроде «${project_loc}/war/WEB-INF/appengine-web.xml». Также перейдите на вкладку «Параметры сборки» и установите флажок «Во время автоматической сборки».

«touch» обновит отметку времени в файле appengine-web.xml. Когда сервер App Engine обнаружит изменения в файле appengine-web.xml, он автоматически перезагрузит приложение. Процесс загрузки очень быстрый, поэтому его можно выполнять всякий раз, когда вы изменяете любой файл в своем проекте (что обычно запускает автоматическую сборку в Eclipse) — вы можете настроить сборщик так, чтобы он запускался только при изменении определенных типов файлов.

person miguelv    schedule 04.09.2011
comment
Здесь это лучшее интеллектуальное и эффективное решение. - person gaRex; 02.01.2012
comment
Вы только что сэкономили мне около пятнадцати минут бессмысленных кликов в течение каждого рабочего дня. СПАСИБО!! - person stickfigure; 02.03.2012
comment
Похоже, я заговорил слишком рано. Такая перезагрузка сервера приводит к тому, что appstats выдает ClassCastExceptions. Вздох. Я зарегистрировал эту ошибку: code.google.com/p/googleappengine. /issues/detail?id=7052 - person stickfigure; 02.03.2012
comment
Вместо прикосновения можно использовать этот прием. stackoverflow.com /вопросы/51435/ - person Palani; 29.06.2012
comment
Я думал, что основной целью touch было создание новых файлов! Из этого ответа я узнал два трюка. - person Hakim; 25.07.2013

Я мог бы добавить, что «маленький красный квадратик» не всегда виден. Это сводило меня с ума, читая ту же инструкцию, но не видя кнопки завершения, пока не обнаружил, что в окнах консоли есть «слои», которые вы можете выбрать, используя раскрывающуюся кнопку в крайнем правом углу элементов управления для представления консоли. Вам просто нужно вернуться к экрану консоли, на котором указано, что сервер запущен, и вы увидите маленькую красную кнопку завершения.

person Community    schedule 30.04.2009
comment
Должны быть какие-то более простые способы перезагрузки или просто перестроения с помощью одной комбинации клавиш. - person Kervin Ramen; 30.04.2011
comment
Я думаю, если вы отлаживаете его вместо того, чтобы запускать, то сервер перезагружается сам по себе. Не нужно останавливаться и снова бежать. Однако он кажется неустойчивым. - person Kervin Ramen; 03.05.2011

Предыдущий ответ не нарезал сыр для меня. При первом запуске App Engine над областью ввода текста будет доступен красный квадрат. Если бы я снова нажал кнопку запуска, то красный квадрат исчез бы, а консоль предыдущего запуска заменилась бы консолью нового запуска. Чтобы вручную остановить сервер App Engine, вы можете завершить его из терминала: http://geekbrigade.wordpress.com/2009/02/26/how-to-find-and-kill-a-process-который-использует-конкретный-порт-в-ubuntu/ Короче говоря, «sudo netstat -lpn |grep :8888» и уничтожьте службу по идентификатору процесса.

Как ни странно, добавление Google Web Toolkit в проект привело к тому, что мой запуск App Engine появился на панели режима разработки, где его можно было легко убить или перезапустить.

person dmiller309    schedule 07.07.2010

Просто нажмите на перспективу «Отладка» (должна быть на верхней правой панели), выберите экземпляр веб-приложения на панели «Отладка» (если вы не показываете его, вы можете включить его с помощью меню «Окно» -> «Показать вид» -> «Отладка») и нажмите на красный окно меню просмотра.

person Marco Garozzo    schedule 12.09.2012

Лучшее, что я нашел, это настроить сочетания клавиш для кнопки завершения консоли и команды запуска/отладки запуска/перезапуска. По умолчанию вы можете включить Command-F2 для завершения и Command-F11 для перезапуска, это довольно безболезненно. Обязательно включите полную группу меню отладки (нажмите на главной панели инструментов -> настроить и т. д.)

person chrismarx    schedule 06.12.2011

Если вы включите gwt SDK в свой проект, в окне режима разработки gwt будет кнопка перезагрузки сервера, которая будет работать нормально.

person Ajax    schedule 28.11.2012
comment
не могли бы вы показать принтскрин, пожалуйста, я не могу найти этот «gwt dev box»? спасибо, редактировать nvm я на win7 в отличии от тебя наверное - person ; 30.11.2013
comment
Окно -> Показать вид -> Другое -> Введите Dev в поле; выберите Google -> Режим разработки. Для этого вам потребуется включить GWT в разделе Google в настройках вашего проекта (щелкните проект -> alt + enter -> введите Web Toolkit в поле фильтра -> нажмите Включить Google Web Toolkit). Когда и GWT, и appengine включены, сервер режима разработки позволяет вам перезапустить оба сразу, используя значок перезагрузки в графическом интерфейсе режима разработки. - person Ajax; 01.12.2013