среда, 1 мая 2013 г.

Настраиваем связку GAE+Java+NetBeans

Чтобы на языке Java разрабатывать web приложения для облачного сервиса Google App Engine с возможностью их дальнейшего развертывания в облаке мне потребуется:
  1. Google App Engine SDK for Java;
  2. Oracle Java SE;
  3. NetBeans IDE;
  4. NetBeans support for Google App Engine;
  5. В роли операционной системы выступает Windows 7.
Часть 1. Подготовка

Для начала необходимо загрузить и установить Java SE. Это можно сделать с официального сайта Oracle. Дальше необходимо скачать GAE/J с сайта Google. Там он предлагается в виде zip архива. Весит архивчик 117Мб. Это много, учитывая что для других поддерживаемых языков GAE почти в четыре раза скромнее. Скачанный архив распаковываем в любое доступное место на диске и проверяем, запуская демонстрационное приложение гостевой книги на сервере разработки, выполнив в командной строке следующую команду:
appengine-java-sdk\bin\dev_appserver.cmd appengine-java-sdk\demos\guestbook\war
Сервер разработки запуститься и начнет прослушивать порт 8080. Открыв в интернет-браузере следующий URL:
http://localhost:8080/
мы должны увидеть страницу гостевой книги. Для остановки сервера надо перейти в окно командной строки и нажать комбинацию клавиш Ctrl+C.

Устанавливаем среду разработку NetBeans... В главном меню программы выбираем последовательно пункты СервисПодключаемые модули. В появившемся окне выбираем вкладку Параметры настройки, и затем жмем на кнопку Добавить. В параметрах настройки нового центра обновлений указываем в поле
Имя: App Engine
URL: https://kenai.com/downloads/nbappengine/Latest_NetBeans69/updates.xml
и подтверждаем свои действия нажатием на кнопку ОK. После этого в списке Доступные подключенные модули можно будет увидеть пять новых модулей:
  • Google App Engine Server 
  • Google App Engine Configuration Editor 
  • Google App Engine Deployment 
  • Google App Engine Editor Hints 
  • Google App Engine Samples 
P.S. Я использовал NetBeans IDE Версии 7.2.1, GAE/J версии 1.7.7.1, Java SE 6.

Часть 2. Запуск...

Теперь наступает самое интересное... Модули которые мы подключили, надо установить! Да, именно так. Для этого каждый модуль из серии Google App Engine отмечаем слева галочкой и жмем копку Установить. Среда NetBeans произведет запрос каждого модуля, загрузит его и установит. На этапе установки возможно появление сообщений о том, что модули не подписаны. После окончания процедуры модули появятся в списке Установлены.

Закроем окно подключаемых модулей и перейдем в раздел Службы. Нам нужно добавить сервер Google App Engine. Для этого встаем на узел Серверы и правой кнопкой мыши из контекстного меню выбираем единственный пункт Добавить сервер... Выбираем из предложенного списка нужный, нажимаем кнопку Далее. Указываем в Server Location путь к папке с GAE/J SDK, а в Server Properties номер порта для прослушивания запросов HTTP и порт для отладки (разумно оставить эти параметры в значениях по умолчанию).

Проверим работоспособность сервера GAE. Для этого в окне Создать проект развернем в списке категорий узел Примеры и выберем подузел Google App Engine. В списке Проекты выберем Guest Book. После того, как проект появиться на вкладке Проекты, запустим его на выполнение через контекстное меню. Запускаем интернет-браузер и в адресной строке набираем http://localhost:8080. В ответ мы должны увидеть страницу гостевой книги.

P.S. Модуль Google App Engine Editor Hints подключить не удалось из-за неразрешимой зависимости от Подсказки Java версии 4. Какой конкретно модуль реализует эту функциональность я не стал разбираться. Так-что небольшая ложка дегтя в большой бочке меда все-таки имеется.

Чтобы увидеть все установленные модули на вкладке Установлены отметьте галочку напротив Подробнее.

Возможно демонстрационный проект у Вас не запуститься. Если такое случилось, внимательно посмотрите лог сервера. Если там наблюдается ошибка следующего содержания:
appengine-web.xml does not contain a <threadsafe> element,
необходимо в проекте открыть файл WEB-INF/appengine-web.xml и добавить следующую строку:
<threadsafe>true</threadsafe>
После этого должно все заработать. И еще... Все попытки использовать плагин nbappengine для версии NetBeans 7.2 закончились ошибкой запуска сервера
Missing value for property jvmargs,
которую победить никак не удалось. Скорее всего это баг разработчика и стоит подождать выхода нового релиза.