it-swarm.com.ru

Как отладить приложение Spring Boot с Eclipse?

Мое веб-приложение Spring Boot работает просто отлично, и я хотел бы отладить его через Eclipse.

Так, при запуске моего отладчика приложения Remote Java, какой порт мне слушать? И есть ли настройка в моем веб-приложении, которую я должен установить, чтобы включить отладку?

86
JeffLL

Почему бы вам просто не щелкнуть правой кнопкой мыши по методу main() и выбрать "Debug As... Java Application"?

152
Dave Syer

Существует раздел 19.2 в Spring Boot Reference , который сообщает вам о запуске приложения с включенной поддержкой удаленной отладки.

$ Java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n \
   -jar target/myproject-0.0.1-SNAPSHOT.jar

После запуска приложения просто добавьте Удаленный Java Конфигурацию приложения в конфигурациях Run/Debug, выберите порт/адрес, который вы определили при запуск вашего приложения, и тогда вы можете отлаживать.

82
masster

Более простое решение:

Вместо того, чтобы вводить mvn spring-boot:run, просто введите mvnDebug spring-boot:run

Вам все еще нужно будет подключить отладчик в Eclipse, создав новую конфигурацию отладки для "Удаленного Java приложения" на соответствующем порту.

18
Duran Wesley Harris

Мне не нужно было настраивать удаленную отладку, чтобы это работало, я использовал Maven.

  1. Убедитесь, что в Eclipse установлен плагин Maven.
  2. Нажмите Выполнить> Выполнить настройки> Maven Build> новая конфигурация запуска :
    • Базовый каталог: найдите корень вашего проекта
    • Цели: spring-boot::run.
  3. Нажмите Применить , затем нажмите Выполнить .

NB. Если у вашего IDE есть проблемы с поиском исходного кода вашего проекта при построчной отладке, посмотрите этот SO answer , чтобы узнать, как вручную присоедините ваш исходный код к приложению отладки.

Надеюсь, это поможет кому-то!

16
DuffJ

Как отлаживать удаленное промежуточное или производственное приложение 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 [email protected]. Держите эту сессию SSH запущенной.

В Eclipse на панели инструментов выберите Выполнить -> Отладочные конфигурации - > выберите Удаленное Java Приложение -> нажмите Новое кнопка -> выбрать в качестве Типа соединения Стандартное (Socket Attach) , в качестве Host localhost и как порт 8002 (или что-либо еще, что вы настроили в предыдущих шагах). Нажмите Применить , а затем Отладить .

Отладчик Eclipse теперь должен подключаться к удаленному серверу. Переключение на перспективу Debug должно показать подключенную JVM и ее потоки. Точки останова должны срабатывать, как только они срабатывают удаленно.

16
Abdull

Запустите команду ниже, где находится pom.xml:

mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"

И запустите ваше удаленное Java приложение с параметром отладки на порту 5005

13
Arpit

Лучшее решение, на мой взгляд, это добавить плагин в pom.xml, и вам больше не нужно ничего делать постоянно:

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <jvmArguments>
                        -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9898
                    </jvmArguments>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
8
krmanish007
  • щелкните правой кнопкой мыши свой проект и выберите "Отладка как => Java приложение или приложение Spring boot" -capture1 - enter image description here
  • Если вы хотите, чтобы ваше приложение приостановилось где-то в вашем приложении, дважды щелкните слева, у вас будет такой снимок 2. enter image description here
  • затем, когда вы запускаете ваше приложение, используйте эти стрелки, чтобы перейти к следующему. (Захват 3) enter image description here
3
Abdelwahid Oubaalla

Пожалуйста, смотрите http://Java.dzone.com/articles/how-debug-remote-Java-applicat чтобы включить удаленную отладку. Если вы используете Tomcat для запуска своего приложения, запустите Tomcat с параметрами удаленной отладки или вы можете запустить Tomcat с поддержкой JPDA с помощью следующей команды.

Windows

<Tomcat bin dir>/startup.bat jpda

* Никс

<Tomcat bin dir>/startup.sh jpda

это включит удаленную отладку на порту 8000

2
Sangram Jadhav

На этот вопрос уже дан ответ, но я также получил ту же проблему для отладки Springboot + gradle + jHipster,

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

Чтобы решить эту проблему, Eclipse предоставил одну дополнительную функцию: Удаленное Java Приложение

с помощью этой функции вы можете отладить ваше приложение.

Следуйте ниже шаг:

запустите приложение gradle с помощью команды ./gradlew bootRun --debug-jvm

Теперь перейдите в Eclipse -> проект правой кнопкой мыши и отладка конфигурации -> Удаленное Java Приложение.

добавьте хост и порт в качестве локального хоста, а порт в качестве 5005 (по умолчанию для отладки Gradle, вы можете изменить его)

см. для более подробной информации и шаг.

1
bharatpatel

Right click on the spring boot project -> debug as -> spring boot App. Поставьте точку отладки и вызовите приложение от клиента, такого как почтальон

1
tadtab

В Eclipse или любой другой IDE просто щелкните правой кнопкой мыши на своем основном весеннем загрузочном приложении и выберите "отладка как Java приложение"

1
adia

Щелкните правой кнопкой мыши файл основного класса Spring Boot Applications -> выберите Debug As параметры -> Выбрать Java-приложение

enter image description here Теперь вы можете использовать точки останова для отладки приложения.

0
Bishal Jaiswal