2009-04-29 4 views
25

ОК, может быть, я немой/слепой, но в документах говорится: «Восстановите и перезапустите сервер». Но я не вижу кнопки, чтобы сделать это где угодно. Или из любого контекстного меню. И я не могу найти что-либо в своих документах, объясняющих, как это сделать. Если я просто попытаюсь запустить приложение снова, он злится, потому что у меня уже есть App Engine, работающий на нужном порту.Как перезапустить Java-сервер Google App Engine в Eclipse?

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

ответ

26

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

alt t3xt

+3

К сожалению, это ужасный ответ - рабочий процесс для перезагрузки - это «щелкнуть вкладку консоли, чтобы перенести это вперед, удалить другие консоли, которые появились на консоли GAE, нажмите красную кнопку, затем нажмите« Запустить »в панель инструментов». Трудно описать, как расстраивает этот ритуал, повторяется сотни раз в день. К счастью, ответ «touch appengine-web.xml» работает! – stickfigure

+0

Это ответ, хотя шаги не очень подробные. Если вам нужны более конкретные шаги, я нашел их на следующем сайте: http://www.hoverdroids.com/errors/google-app-engine/stop-or-restart-a-previously-started-google-app-engine- local-server-in-eclipse/ –

11

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

+0

Должны быть некоторые более простые способы перезагрузки или просто перестроить с помощью одной клавиши быстрого доступа. –

+0

Я думаю, что если вы отлаживаете его вместо его запуска, то сервер перезапускается сам по себе. Не нужно останавливаться и снова бегать. Однако это кажется неустойчивым. –

4

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

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

24

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

Вам нужна некоторая версия традиционной команды «touch» unix (если вы работаете с окнами, вы можете скачать версию с here).

Затем перейдите к свойствам проекта, строителям и добавьте новый шаг сборки в качестве «Программы». В разделе «Местоположение» введите путь к вашей команде «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) - вы можете настроить застройщик только на запуск при изменении определенных типов файлов.

+0

Это лучшее интеллектуальное и эффективное решение здесь. – gaRex

+0

Вы только что спасли мне около пятнадцати кумулятивных минут бессмысленного нажатия в течение каждого рабочего дня. СПАСИБО!! – stickfigure

+0

Похоже, я говорил слишком рано. Перезагрузка сервера таким образом заставляет appstats бросать ClassCastExceptions. Вздох. Я зарегистрировал эту ошибку: http://code.google.com/p/googleappengine/issues/detail?id=7052 – stickfigure

0

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

3

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

0

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

+0

Можете ли вы показать печатный экран, пожалуйста, я не могу найти эту «gwt dev box»? Спасибо, * отредактируйте nvm. Я нахожусь на win7, в отличие от вас, вероятно, * – 2013-11-30 02:08:25

+0

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

Смежные вопросы