В первой статье цикла был создан проект, поэтому этого касаться в данной статье я не буду.
Плагин Windows Azure для интегрированной среды разработки Eclipse позволяет в числе своих возможностей отлаживать приложения как в локальном эмуляторе, так и в облаке. Для того, чтобы сконфигурировать проект для использования отладки, необходимо щелкнуть правой кнопкой мыши на вашей роли (с синей шестеренкой) и вызвать окно Properties (рис.1.), где необходимо перейти на вкладку Windows Azure, после чего на вкладку Debugging, где отметить опцию Enable remote debugging for this role. Панель позволяет выбрать также точку входа, по которой будет происходить отладка приложения, и другие опции – такие, как ожидание приложения до входа отладчика и т.д. Немного подробнее про Start JVM in suspended mode, waiting for a debugger connection: данная опция предназначена только для некоторых ситуаций, связанных с локальным эмулятором – с помощью ее можно задержать запуск сервера до тех пор, пока отладчик Eclipse не подключится к соответствующей JVM. Откройте меню Windows Azure Debug Configuration и выберите свой проект в Java project to debug, после чего убедитесь, что Configure debugging for указан в значение Windows Azure compute emulator. Закройте диалог и окно Properties.
Рис.1. Свойства роли.
Теперь можно переходить к непосредственному процессу отладки в локальном эмуляторе. Сначала необходимо отметить точку прерывания (breakpoint). Для этого:
Map<String, LocalResource> localresources = RoleEnvironment.getLocalResources();
Map<String, String> mapConfigSettings = RoleEnvironment.getConfigurationSettings();
Рис. 2. Установка точки прерывания.
После установки точки прерывания появится соответствующий значок (рис.3).
Рис.3.
Теперь необходимо собрать проект – Build => Build project. После этого появится папка emulatorTools, в которой необходимо сначала запустить (на всякий случай) ResetEmulator.cmd (среда локального эмулятора будет очищена и остановлена), после чего RunInEmulator.cmd.
После окончания процесса запуска необходимо соответствующим образом сконфигурировать конфигурацию отладки. Для этого:
1) В меню нажмите на иконке стрелки справа от значка жука и выберите Debug Configurations (рис. 4.).
Рис. 4. Открытие окна конфигурации отладки.
2) Разверните вкладку Remote Java Applications и выберите Windows Azure Emulator (WorkerRole1) (рис. 5.). Убедитесь, что выбран режим Socket Attach! После чего Нажмите Debug.
Рис. 5. Окно конфигураций отладки.
Как только процесс будет завершен, перейдите на страницу JSP в браузере. В моем случае этоhttp://localhost:8080/AzureLocApp/NewFile.jsp. При открытии обратите внимание, что Eclipse предложит поменять перспективу (рис. 6.). Согласитесь.
Рис. 6.
У вас должна открыться перспектива отладки (рис. 7.).
Рис. 7. Перспектива отладки Java-приложения в Eclipse.
Вам доступна полная функциональность Eclipse по отладке. Нажмите F8 (Resume) и просмотрите данные, которые предоставляет вам среда разработки.
Отладка в облаке Windows Azure
Нажмите два раза на файле ResetEmulator для уничтожения вашего развертывания в локальном эмуляторе.
Необходимо отметить, что отладка в данный момент предназначена для целей отладки в локальном эмуляторе, так как ничем не обезопасена. Поэтому не включайте отладку при развертывании в реальном развертывании.
Для настройки проекта для облачной отладки сначала сконфигурируйте сборку проекта для облачной сборки (окно Properties облачного проекта, вкладка Windows Azure, Build for, рис. 8). Нажмите Project->Build all.
Рис. 8. Конфигурация сборки проекта для облака.
Вернитесь к первому абзацу и в окне Properties сконфигурируйте Build for как Deployment to cloud. В этом же диалоге сконфигурируйте значение Host (оно должно быть равно DNS-имени вашего тестового развертывания без http://) (рис. 9). DNS-имя развертывания можно получить, зайдя на портал управления Windows Azure и выбрав ваше развертывание. В панели Properties вы увидите свойство DNS name (рис. 10).
Рис. 9. Конфигурация облачной отладки.
Рис. 10. Панель свойств тестового развертывания.
Закройте диалог и окно Properties вашего проекта и соберите проект (Project –> Build all). Далее загрузите пакет и конфигурационный файл в развертывание в облаке. В том случае, если у вас не создано развертывание, обратитесь к первой статье цикла. В том случае, если hosted service уже создан, перейдите на портал управления Windows Azure. Выберите тестовое развертывание и нажмите кнопку Upgrade (рис. 11).
Рис. 11. Портал управления Windows Azure.
В появившемся диалоге (рис. 12) выберите ваши пакет сервиса и конфигурационный файл, нажав Browse Locally и найдя необходимые файлы в папке deploy вашего облачного проекта.
Рис. 12. Обновление пакета сервиса и файла конфигурации для тестового развертывания.
Дождитесь окончания процесса развертывания вашего проекта. После этого в меню нажмите на иконке стрелки справа от значка жука и выберите Debug Configurations Разверните вкладку Remote Java Applications и выберите Windows Azure Cloud (WorkerRole1) (рис. 13.). Убедитесь, что выбран режим Socket Attach! После чего Нажмите Debug.
Рис. 13. Окно конфигураций отладки.
Как только процесс будет завершен, перейдите на страницу JSP в браузере. В моем случае этоhttp://8eee90deb9394d98bfc4979a9f7fabcd.cloudapp.net/AzureLocApp/NewFile.jsp. При открытии обратите внимание, что Eclipse предложит поменять перспективу (рис. 6.). Согласитесь.
Обратите внимание, что, если вы активировали отладку для развертывания, у которого имеется множество запущенных экземпляров, возможности контролировать, к какому из экземпляров будет подключен отладчик, нет, так как балансировщик нагрузки посылает запрос экземпляру случайным образом. В том случае, если вы не предпринимаете никаких действий по отладке, отладочное подключение будет отключено через 4 минуты со стороны Windows Azure.
Для того, чтобы совершить все те же самые действия по настройке отладки, но с GlassFish, вам необходимо будет сконфигурировать GlassFish вручную, не трогая конфигурацию плагина Windows Azure для Eclipse.
Alexander Belotserkovskiy edited Revision 2. Comment: added link to sixth part
Patris_70 edited Revision 1. Comment: added (ru-RU) title
Alexander Belotserkovskiy edited Original. Comment: added link to fifth part. added formatting
Alexander Belotserkovskiy edited Revision 3. Comment: added link to seventh part