web-dev-qa-db-ja.com

EclipseでSpring Bootアプリケーションをデバッグする方法は?

Spring Boot webappは正常に動作しています。Eclipseでデバッグしたいと思います。

リモートJavaアプリケーションデバッガーを起動するとき、どのポートをリッスンする必要がありますか?そして、デバッグを有効にするために設定しなければならないwebappの設定はありますか?

86
JeffLL

main()メソッドを右クリックして"Debug As... Java Application"を選択してみませんか?

152
Dave Syer

Spring Boot Referenceのセクション19.2 には、リモートデバッグサポートを有効にしてアプリケーションを起動する方法が記載されています。

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

アプリケーションを起動したら、Remote Java Application configurationをRun/Debug構成に追加し、アプリの起動時に定義したポート/アドレスを選択してから、自由にデバッグできます。

82
masster

より簡単なソリューション:

mvn spring-boot:runと入力する代わりに、単にmvnDebug spring-boot:runと入力します

関連するポートで「リモートJavaアプリケーション」の新しいデバッグ構成を作成して、Eclipseでデバッガーをアタッチする必要があります。

18

これを機能させるためにリモートデバッグを設定する必要はありませんでした。Mavenを使用しました。

  1. EclipseにMavenプラグインがインストールされていることを確認してください。
  2. 実行>実行構成> Mavenビルド>新しい起動構成:をクリックします。
    • ベースディレクトリ:プロジェクトのルートを参照
    • 目標:spring-boot::run
  3. 適用をクリックしてから、実行をクリックします。

NB。 IDEで行ごとのデバッグを行うときにプロジェクトのソースコードを見つけるのに問題がある場合は、 this 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

Sudo service my-app restartを使用してSpring Bootアプリケーションを再起動すると、/var/log/my-app.logにあるログファイルにListening for transport dt_socket at address: 8002を示す行が表示されます。

クライアント側(開発者マシン)

サーバーへのSSHポート転送トンネルを開きます:ssh -L 8002:localhost:8002 [email protected]。このSSHセッションを実行し続けます。

Eclipseのツールバーから、Run->Debug Configurations-を選択します。 >選択リモートJavaアプリケーション->Newボタンをクリック->選択接続タイプとして標準(ソケット接続)、ホストとしてlocalhost、およびas Port8002(または前の手順で設定したもの)。 Applyをクリックしてから、Debugをクリックします。

これで、Eclipseデバッガーがリモートサーバーに接続するはずです。 Debugパースペクティブに切り替えると、接続されたJVMとそのスレッドが表示されます。ブレークポイントは、リモートでトリガーされるとすぐに起動する必要があります。

16
Abdull

pom.xmlが配置されている以下のコマンドを実行します。

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

そして、ポート5005でデバッグオプションを指定してリモートJavaアプリケーションを起動します

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
  • プロジェクトを右クリックして、「Debug As => Java application or Spring boot App」を選択します-capture1- enter image description here
  • アプリケーションをアプリ内のどこかで一時停止するには、左側をダブルクリックします。このキャプチャ2のようになります。 enter image description here
  • 次に、アプリを起動したら、これらの矢印を使用して次に進みます。(キャプチャ3) enter image description here
3

http://Java.dzone.com/articles/how-debug-remote-Java-applicat を参照して、リモートデバッグを有効にしてください。 Tomcatを使用してアプリケーションを実行している場合は、リモートデバッグパラメーターでTomcatを起動するか、次のコマンドを使用してJPDAサポートでTomcatを起動できます。

<Tomcat bin dir>/startup.bat jpda

* nix

<Tomcat bin dir>/startup.sh jpda

これにより、ポート8000​​でのリモートデバッグが有効になります。

2
Sangram Jadhav

この質問はすでに回答されていますが、Springboot + gradle + jHipsterのデバッグにも同じ問題があります。

ほとんどの場合、Springブートアプリケーションは右クリックしてデバッグできますが、Gradleを使用する場合は、追加の環境パラメーターを設定してから直接デバッグすることはできません。

これを解決するために、Eclipseは Remote Java Application として1つの追加機能を提供しました

この機能を使用すると、アプリケーションをデバッグできます。

以下の手順に従ってください:

./gradlew bootRun --debug-jvmコマンドでgradleアプリケーションを実行します

Eclipseに移動->プロジェクトを右クリックし、構成をデバッグ->リモートJavaアプリケーション。

ホストとポートをlocalhostとして追加し、ポートを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メインクラスファイルを右クリックします-> SelectAsとしてデバッグoptions-> SelectJava Application

enter image description here これで、ブレークポイントを使用してアプリケーションをデバッグできます。

0
Bishal Jaiswal