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

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

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


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


Ответы (7)


arrow_upward
26
arrow_downward

В 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

arrow_upward
24
arrow_downward

У меня есть другое и, возможно, более продуктивное решение для вас. Как и в большинстве сред веб-разработки, вы, вероятно, захотите изменить свой исходный код, чтобы сервер 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

arrow_upward
11
arrow_downward

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

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

arrow_upward
4
arrow_downward

Предыдущий ответ не нарезал сыр для меня. При первом запуске 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

arrow_upward
3
arrow_downward

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

person Marco Garozzo    schedule 12.09.2012

arrow_upward
0
arrow_downward

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

person chrismarx    schedule 06.12.2011

arrow_upward
0
arrow_downward

Если вы включите 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