Была ли эта страница полезной?
Ваш отзыв об этом контенте важен для нас. Расскажите нам о том, что вы думаете.
Дополнительный отзыв?
1500 символов осталось
Экспорт (0) Печать
Развернуть все
Развернуть Свернуть

Отладка приложений Azure в Eclipse

Обновлено: Март 2015 г.

Если в качестве операционной системы вы используете Windows, с помощью набора средств Azure для Eclipse можно выполнять отладку приложений вне зависимости от того, выполняются они в Azure или в эмуляторе вычислений. На следующем рисунке вы видите диалоговое окно свойств Отладка, используемое для включения удаленной отладки:

Свойства отладки

В этом учебнике предполагается, что у вас уже есть успешно созданное приложение и вы знакомы с эмулятором вычислений и развертыванием в Azure.

В качестве отправной точки для данной статьи мы будем использовать приложение из учебника Использование библиотеки среды выполнения служб Azure в JSP. Прежде чем продолжить, создайте это приложение, если вы еще этого не сделали.

noteПримечание
Эмулятор Azure доступен только в Windows. При использовании операционной системы, отличной от Windows, этот раздел можно пропустить.

  1. Построение проекта для тестирования в эмуляторе В обозревателе проектов Eclipse щелкните правой кнопкой мыши MyAzureProject, последовательно выберите пункты Свойства, Azure и установите для параметра Сборка для значение Тестирование в эмуляторе.

  2. Заново постройте проект: В меню Eclipse выберите Проект и щелкните Собрать все

  3. В обозревателе проектов Eclipse щелкните правой кнопкой мыши WorkerRole1, выберите Azure и щелкните Отладка.

  4. В диалоговом окне Свойства отладки WorkerRole1 сделайте следующее:

    1. Установите флажок Включить удаленную отладку для этой роли.

    2. В качестве входной конечной точки для использования используйте автоматически созданную набором средств конечную точку по умолчанию, указанную как Отладка (общедоступный:8090, частный:8090).

    3. Убедитесь, что флажок Запуск виртуальной машины Java в режиме приостановки, ожидание подключения отладчика не установлен.

      ImportantВажно!
      Параметр Запуск виртуальной машины Java в режиме приостановки, ожидание подключения отладчика предназначен только для расширенных сценариев отладки в эмуляторе вычислений (не для развертывания в облаке). Если используется параметр Запуск виртуальной машины Java в режиме приостановки, ожидание подключения отладчика, он приостанавливает процесс запуска сервера до подключения отладчика Eclipse к его виртуальной машине Java. Хотя вы можете использовать этот параметр для сеанса отладки с помощью эмулятора вычислений, не используйте его для сеанса отладки в облачном развертывании. Инициализация сервера выполняется в задаче запуска Azure, и облако Azure не предоставляет общедоступные конечные точки до завершения задачи. Таким образом процесс запуска не завершится успешно, если этот параметр включен при развертывании облака, так как он не будет получать подключения от внешнего клиента Eclipse.

    4. Щелкните Создание конфигураций отладки.

  5. В диалоговом окне Конфигурация отладки Azure сделайте следующее:

    1. В разделе Проект Java для отладки выберите проект MyHelloWorld.

    2. В разделе Настроить отладку для установите флажок Эмулятор вычислений Azure.

  6. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Конфигурация отладки Azure.

  7. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Свойства отладки WorkerRole1.

  8. Установите точку останова в index.jsp.

    1. В обозревателе проектов Eclipse последовательно разверните узлы MyHelloWorld, WebContent и дважды щелкните index.jsp.

    2. В пределах index.jsp щелкните правой кнопкой мыши синюю полосу слева от кода Java и выберите пункт Переключение точек останова, как показано ниже:

      Задание точки останова

      Если отображается значок точки останова в синей полосе слева от кода Java, задается точка останова.

  9. Запустите приложение в эмуляторе вычислений, щелкнув Запуск в эмуляторе Azure на панели инструментов Azure.

  10. В меню Eclipse выберите Запустить и выберите пункт Конфигурации отладки.

  11. В диалоговом окне Конфигурации отладки разверните узел Удаленное приложение Java на левой панели, выберите Эмулятор Azure (WorkerRole1) и нажмите кнопку Отладка.

  12. После того как эмулятор вычислений укажет, что приложение выполняется, в браузере перейдите по адресу http://localhost:8080/MyHelloWorld.

    При появлении диалогового окна Подтверждение смены перспективы нажмите кнопку Да.

    Теперь сеанс отладки должен выполняться до строки кода, где была задана точка останова.

Вы узнали, как выполнить отладку в эмуляторе вычислений. В следующих разделах вы узнаете, как отлаживать приложение, развернутое в Azure.

securityПримечание o безопасности.
Текущая поддержка набора средств для удаленной отладки Java предназначена в первую очередь для развертываний, работающих в эмуляторе вычислений Azure. Поскольку подключение отладки не является безопасным, не следует включать удаленную отладку в производственной среде. Если требуется отладить приложение, работающее в облаке Azure, используйте промежуточное развертывание, но помните, что если кто-то знает IP-адрес вашего облачного развертывания, возможен несанкционированный доступ к сеансу отладки, даже если это промежуточное развертывание.

  1. Построение проекта для тестирования в эмуляторе В обозревателе проектов Eclipse щелкните правой кнопкой мыши MyAzureProject, последовательно выберите пункты Свойства, Azure и установите для параметра Сборка для значение Развертывание в облаке.

  2. Заново постройте проект: В меню Eclipse выберите Проект и щелкните Собрать все

  3. Осуществите развертывание приложения в промежуточную среду в Azure.

    ImportantВажно!
    Как упоминалось выше, настоятельно рекомендуется в большинстве случаев проводить отладку в эмуляторе вычислений, а отладку в промежуточной среде проводите только в том случае, если требуется дополнительная отладка. Не рекомендуется проводить отладку в производственной среде.

  4. После завершения развертывания в Azure получите DNS-имя для развертывания на портале управления Azure. Развертывание в промежуточной среде имеет DNS-имя в формате http://<guid>.cloudapp.net, где <guid> представляет собой значение GUID, назначенное Azure.

  5. В обозревателе проектов Eclipse щелкните правой кнопкой мыши WorkerRole1, выберите Azure и щелкните Отладка.

  6. В диалоговом окне Свойства отладки WorkerRole1 сделайте следующее:

    1. Установите флажок Включить удаленную отладку для этой роли.

    2. В качестве входной конечной точки для использования используйте Отладка (общедоступный:8090, частный:8090).

    3. Убедитесь, что флажок Запуск виртуальной машины Java в режиме приостановки, ожидание подключения отладчика не установлен.

      ImportantВажно!
      Параметр Запуск виртуальной машины Java в режиме приостановки, ожидание подключения отладчика предназначен только для расширенных сценариев отладки в эмуляторе вычислений (не для развертывания в облаке). Если используется параметр Запуск виртуальной машины Java в режиме приостановки, ожидание подключения отладчика, он приостанавливает процесс запуска сервера до подключения отладчика Eclipse к его виртуальной машине Java. Хотя вы можете использовать этот параметр для сеанса отладки с помощью эмулятора вычислений, не используйте его для сеанса отладки в облачном развертывании. Инициализация сервера выполняется в задаче запуска Azure, и облако Azure не предоставляет общедоступные конечные точки до завершения задачи. Таким образом процесс запуска не завершится успешно, если этот параметр включен при развертывании облака, так как он не будет получать подключения от внешнего клиента Eclipse.

    4. Щелкните Создание конфигураций отладки.

  7. В диалоговом окне Конфигурация отладки Azure сделайте следующее:

    1. В разделе Проект Java для отладки выберите проект MyHelloWorld.

    2. В разделе Настроить отладку для установите флажок Облако Azure (промежуточная среда).

    3. Убедитесь, что флажок Эмулятор вычислений Azure не установлен.

    4. В разделе Узел введите DNS-имя развертывания в промежуточной среде, но без префикса http://. Например (используйте локальный идентификатор GUID вместо GUID, показанного ниже):

      4e616d65-6f6e-6d65-6973-526f62657274.cloudapp.net

  8. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Конфигурация отладки Azure.

  9. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Свойства отладки WorkerRole1.

  10. Установите точку останова в index.jsp, если вы еще этого не сделали:

    1. В обозревателе проектов Eclipse последовательно разверните узлы MyHelloWorld, WebContent и дважды щелкните index.jsp.

    2. В пределах index.jsp щелкните правой кнопкой мыши синюю полосу слева от кода Java и выберите пункт Переключение точек останова, как показано ниже:

      Задание точки останова
  11. В меню Eclipse выберите Запустить и выберите пункт Конфигурации отладки.

  12. В диалоговом окне Конфигурации отладки разверните узел Удаленное приложение Java на левой панели, выберите Облако Azure (WorkerRole1) и нажмите кнопку Отладка.

  13. В браузере запустите приложение, развернутое в промежуточной среде (http://<guid>.cloudapp.net/MyHelloWorld), подставив вместо <guid> значение GUID из DNS-имени.

    При появлении диалогового окна Подтверждение смены перспективы нажмите кнопку Да.

    Теперь сеанс отладки должен выполняться до строки кода, где была задана точка останова.

    noteПримечание
    Если вы пытаетесь запустить удаленное соединение отладки в развертывании, включающем несколько работающих экземпляров ролей, невозможно контролировать, который отладчик будет изначально подключен, так как подсистема балансировки нагрузки Azure выберет экземпляр случайным образом. После подключения к этому экземпляру, тем не менее, можно будет продолжить отладку того же экземпляра. Обратите также внимание, что при наличии периода бездействия более 4 минут (например, когда вы останавливаетесь в точке останова слишком долго) Azure может закрыть подключение.

Если развертывание выполняется в облаке, оно, скорее всего, будет выполняться в нескольких экземплярах вычислений, или ролей. Это позволяет воспользоваться преимуществами гарантии доступности Azure 99,95%, а также масштабировать приложение.

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

Это тип сценария, где преимущество входных конечных точек упростит отладку конкретного экземпляра роли.

Предположим, что планируется запустить до 5 экземпляров роли развертывания. На странице свойств Конечные точки диалогового окна свойств роли создайте входную конечную точку экземпляра и присвойте ей диапазон общедоступных портов, а не один номер порта. Например, в поле ввода Общий порт укажите 81–85.

После развертывания приложения с этой конечной точкой экземпляра Azure присвоит уникальный номер порта из данного диапазона каждому экземпляру роли. Затем, чтобы узнать, какой номер порта присвоен каждому экземпляру, можно использовать переменную среды конечная_точка_экземпляра_PUBLICPORT (где конечная_точка_экземпляра — имя, присвоенное при создании конечной точки экземпляра), которую автоматически настраивает набор средств в вашем развертывании (например, возвращая ее значение в нижнем колонтитуле веб-страницы, чтобы его можно было прочитать при просмотре страницы).

Узнав, какой номер открытого порта был присвоен этому экземпляру, на него можно ссылаться в конфигурации отладки в Eclipse, добавив его в имя узла службы. Это позволит отладчику Eclipse подключиться к этому конкретному экземпляру, а не какому-либо другому.

  • После отладки можно переключить перспективу с отладки на Java, щелкнув меню Eclipse. Для этого последовательно выберите пункты Окно, Открыть перспективу и выберите перспективу, которую хотите использовать.

  • Чтобы включить удаленную отладку в GlassFish, не используйте функцию конфигурации удаленной отладки набора средств Azure для Eclipse. Вместо этого настройте GlassFish вручную. Из-за того, каким образом GlassFish обрабатывает параметры Java, предопределенные в переменных среды, функция конфигурации удаленной отладки набора средств работает неправильно с GlassFish. Если функция конфигурации удаленной отладки набора средств включена, она может остановить запуск GlassFish.

Показ:
© 2015 Microsoft