Руководство по отладке приложения Java, развернутом в локальном кластере Service Fabric
Это руководство представляет собой вторую часть цикла. Вы узнаете, как подключить удаленный отладчик с помощью Eclipse для приложения Service Fabric. Кроме того, вы узнаете, как перенаправлять журналы из запущенных приложений в расположение, удобное для разработчика.
Из этого цикла руководств вы узнаете, как выполнять следующие задачи:
- Развертывание приложения Java служб Service Fabric Reliable Services в Azure.
- Развертывание и отладка приложения в локальном кластере.
- Развертывание приложения в кластере Azure.
- Настройка мониторинга и диагностики приложения
- Настройка процесса непрерывной интеграции и доставки
Из второй части цикла вы узнаете, как выполнять следующие задачи:
- Отладка приложения Java с помощью Eclipse
- перенаправление журналов в настраиваемое расположение.
Необходимые компоненты
Перед началом работы с этим руководством выполните следующие действия:
- Настройте среду разработки для Mac или Linux. Следуя инструкциям, установите подключаемый модуль Eclipse, Gradle, пакет SDK для Service Fabric и интерфейс командной строки Service Fabric (sfctl).
Скачивание примера приложения для голосования
Если вы не создавали пример приложения для голосования в первой части этой серии руководств, вы можете скачать его. В окне терминала выполните следующую команду, чтобы клонировать репозиторий с примером приложения на локальный компьютер.
git clone https://github.com/Azure-Samples/service-fabric-java-quickstart
Создайте и разверните приложение в локальном кластере разработки.
Отладка приложения Java с помощью Eclipse
Откройте интегрированную среду разработки (IDE) Eclipse на компьютере и выберите Файл -> Импорт...
Во всплывающем окне выберите параметры Общие -> Существующие проекты в рабочую область и нажмите кнопку "Далее".
В окне импорта проектов выберите параметр Select root directory (Выбрать корневой каталог) и выберите каталог Voting. Если вы работали с руководством из первой части цикла, то каталог Voting находится в каталоге Eclipse-workspace.
Обновите файл entryPoint.sh службы, которую необходимо отладить, так, чтобы он запускал процесс Java с параметрами удаленной отладки. В этом руководстве используется внешний интерфейс без отслеживания состояния: Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh. Для отладки в этом примере задается порт 8001.
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -jar VotingWeb.jar
Обновите манифест приложения, задав для отлаживаемой службы число экземпляров или реплик, равное единице. Эта настройка позволяет избежать конфликтов для порта, используемого для отладки. Например, для служб без отслеживания состояния, задайте
InstanceCount="1"
, а для служб с отслеживанием состояния задайте целевые и минимальные размеры набора реплик, равные 1, следующим образом:TargetReplicaSetSize="1" MinReplicaSetSize="1"
.В среде IDE Eclipse выберите Запустить -> Конфигурации отладки -> Удаленное приложение Java, нажмите кнопку Создать, затем установите свойства, как показано ниже, и щелкните Применить.
Name: Voting Project: Voting Connection Type: Standard Host: localhost Port: 8001
Установите точку останова на строке 109 в файле Voting/VotingWeb/src/statelessservice/HttpCommunicationListener.java.
В обозревателе пакетов щелкните правой кнопкой мыши проект Voting и выберите Service Fabric -> Публикация приложения....
В окне Публикация приложения выберите Local.json в раскрывающемся списке и нажмите кнопку Опубликовать.
В среде IDE Eclipse выберите Запустить -> Конфигурации отладки -> Удаленное приложение Java, щелкните конфигурацию Голосование, которую вы создали ранее, и нажмите кнопку Отладить.
Откройте веб-браузер и перейдите по адресу localhost:8080. Данное действие активирует точку останова, а Eclipse перейдет в перспективу отладки.
Теперь те же шаги можно применить для отладки любого приложения Service Fabric в Eclipse.
Перенаправление журналов приложения в пользовательское расположение
Ниже приведены пошаговые инструкции по перенаправлению журналов из расположения по умолчанию (/var/log/syslog) в пользовательское расположение.
Сейчас приложения, работающие в кластерах Service Fabric для Linux, поддерживают только принятие одного файла журнала. Чтобы настроить приложение, в котором журналы будут всегда записываться в /tmp/mysfapp0.0.log, создайте файл с именем logging.properties в расположении Voting/VotingApplication/VotingWebPkg/Code/logging.properties и добавьте следующее содержимое.
handlers = java.util.logging.FileHandler java.util.logging.FileHandler.level = ALL java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter # This value specifies your custom location. # You will have to ensure this path has read and write access by the process running the SF Application java.util.logging.FileHandler.pattern = /tmp/mysfapp0.0.log
Добавьте в файл Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh следующий параметр для команды выполнения Java:
-Djava.util.logging.config.file=logging.properties
В следующем примере показан образец выполнения с подключенным отладчиком, похожим на выполнение из предыдущего раздела.
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -Djava.util.logging.config.file=logging.properties -jar VotingWeb.jar
На этом этапе вы узнали, как выполнить отладку и получить доступ к журналам приложений при разработке приложений Java в Service Fabric.
Следующие шаги
В этой части руководства вы узнали, как выполнить следующие действия:
- Отладка приложения Java с помощью Eclipse
- перенаправление журналов в настраиваемое расположение.
Перейдите к следующему руководству: