При разработке Java приложений иногда возникают ошибки, которые сложно или долго воспроизвести локально, на рабочей машине. В таких ситуациях можно воспользоваться специальным протоколом связи между отладчиком и виртуальной машиной Java. Называется этот протокол Java Debug Wire Protocol (JDWP) и его поддержка реализована в IntelliJ IDEA и Eclipse.
Далее я покажу как настроить отладку удаленного приложения в популярных Java IDE.
Настройка IntelliJ IDEA для отладки удаленного приложения
1. Откройте проект в IDE
2. В меню выберите Run -> Edit Configurations
3. Создаем новую конфигурацию (нажимаем +), выбираем Remote
4. Копируем аргументы для JVM, указываем адрес удаленной машины
$ java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar application.jar
6. В идее ставим брейкпоинт и запускаем Remote конфигурацию
7. Пользуемся дебагером :)
Настройка Eclipse для отладки удаленного приложения
1. Запускаем проект
2. В меню выбираем Run -> Debug Configurations -> Remote Java Application
3. В настройках указываем Connection Type: Standart (Socket Attach), Host, Port: 5005
4. Запускаем Java приложение c настройками JVM для JDWP:
$ java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar application.jar
5. Пользуемся отладчиком
Важно!
По соображениям безопасности JDWP должен быть обязательно отключен на продакшен серверах, т.к. протокол не использует никакой аутентификации и позволяет выполнить произвольный Java код
.
Комментариев нет:
Отправить комментарий