Як налагодити віддалену постановку або виробництво програми Spring Boot
На стороні сервера
Припустимо, ви успішно виконували посібник Spring Boot щодо налаштування програми Spring Boot як сервісу . Артефакт вашої програми розташований у /srv/my-app/my-app.warсупроводі файлу конфігурації /srv/my-app/my-app.conf:
# This is file my-app.conf
# What can you do in this .conf file? The my-app.war is prepended with a SysV init.d script
# (yes, take a look into the war file with a text editor). As my-app.war is symlinked in the init.d directory, that init.d script
# gets executed. One of its step is actually `source`ing this .conf file. Therefore we can do anything in this .conf file that
# we can also do in a regular shell script.
JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,address=localhost:8002,server=y,suspend=n"
export SPRING_PROFILES_ACTIVE=staging
Після перезапуску програми Spring Boot sudo service my-app restartу файлі журналу, розташованому на, /var/log/my-app.logмає бути рядок Listening for transport dt_socket at address: 8002.
Сторона клієнта (машина розробника)
Відкриття SSH переадресації портів тунель до сервера: ssh -L 8002:localhost:8002 myusername@staging.example.com. Тримайте цей сеанс SSH.
У програмі Eclipse на панелі інструментів виберіть Запуск -> Конфігурації налагодження -> виберіть Віддалену програму Java -> натисніть кнопку Створити -> виберіть як тип з'єднання Стандартний (Socket Attach) , як Host localhost , і як порт 8002 (або як у вас є налаштований на попередніх етапах). Клацніть Застосувати, а потім налагодити .
Тепер відладчик Eclipse повинен підключитися до віддаленого сервера. Перехід на перспективу налагодження повинен показувати підключений JVM та його потоки. Точки переривання повинні спрацьовувати, як тільки вони віддалено спрацьовують.