Подтвердить что ты не робот

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

My Spring Boot webapp работает нормально, и я хотел бы отлаживать его через Eclipse.

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

4b9b3361

Ответ 1

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

Ответ 2

Там раздел 19.2 в Spring Справочник загрузки, в котором говорится вам о запуске приложения с поддержкой удаленной отладки.

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

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

Ответ 3

Простое решение:

Вместо ввода mvn spring-boot:run, просто введите mvnDebug spring-boot:run

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

Ответ 4

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

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

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

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

Ответ 5

Как отладить удаленное промежуточное или производственное приложение Spring для загрузки

на стороне сервера

Предположим, что вы успешно выполнили Spring Руководство по загрузке при настройке вашего приложения загрузки Spring как службы. Артефакт приложения находится в /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 с помощью 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" → нажмите кнопку "Создать" → выберите "Тип подключения" ( "Присоединение к соке" ), "Хост-сайт" и "Порт 8002" (или независимо от того, что вы настроили в предыдущих шагах). Нажмите "Применить", а затем "Отладка".

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

Ответ 6

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

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

И запустите удаленное java-приложение с параметром отладки на порту 5005

Ответ 7

Лучшим решением, на мой взгляд, является добавление плагина в 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

  • щелкните правой кнопкой мыши по своему проекту и выберите "Отладка как => Java-приложение или Spring boot App" -capture1 - enter image description here
  • Если вы хотите, чтобы ваше приложение приостановилось где-то в вашем приложении, дважды щелкните слева, у вас будет такой снимок 2. enter image description here
  • затем, когда вы запускаете свое приложение, используйте эти стрелки, чтобы перейти к следующему. (снимок 3) enter image description here

Ответ 9

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

Окна

<tomcat bin dir>/startup.bat jpda

* Никс

<tomcat bin dir>/startup.sh jpda

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

Ответ 10

С помощью eclipse или любой другой среды IDE просто щелкните правой кнопкой мыши на основном загрузочном приложении spring и выберите "debug as java application"

Ответ 11

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

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

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

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

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

запустите ваше приложение gradle с ./gradlew bootRun --debug-jvm

Теперь перейдите к eclipse → проект правой кнопкой мыши и отладка конфигурации → Remote Java Application.

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

Обратитесь за более подробной информацией и шагом.

Ответ 12

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

Ответ 13

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

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