Spring Boot
webappは正常に動作しています。Eclipseでデバッグしたいと思います。
リモートJavaアプリケーションデバッガーを起動するとき、どのポートをリッスンする必要がありますか?そして、デバッグを有効にするために設定しなければならないwebappの設定はありますか?
main()
メソッドを右クリックして"Debug As... Java Application"
を選択してみませんか?
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構成に追加し、アプリの起動時に定義したポート/アドレスを選択してから、自由にデバッグできます。
より簡単なソリューション:
mvn spring-boot:run
と入力する代わりに、単にmvnDebug spring-boot:run
と入力します
関連するポートで「リモートJavaアプリケーション」の新しいデバッグ構成を作成して、Eclipseでデバッガーをアタッチする必要があります。
これを機能させるためにリモートデバッグを設定する必要はありませんでした。Mavenを使用しました。
spring-boot::run
。NB。 IDEで行ごとのデバッグを行うときにプロジェクトのソースコードを見つけるのに問題がある場合は、 this SO answer を見て方法を確認してくださいソースコードをデバッグアプリケーションに手動で添付します。
これが誰かを助けることを願っています!
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とそのスレッドが表示されます。ブレークポイントは、リモートでトリガーされるとすぐに起動する必要があります。
pom.xml
が配置されている以下のコマンドを実行します。
mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
そして、ポート5005
でデバッグオプションを指定してリモートJavaアプリケーションを起動します
私の意見では、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>
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でのリモートデバッグが有効になります。
この質問はすでに回答されていますが、Springboot + gradle + jHipsterのデバッグにも同じ問題があります。
ほとんどの場合、Springブートアプリケーションは右クリックしてデバッグできますが、Gradleを使用する場合は、追加の環境パラメーターを設定してから直接デバッグすることはできません。
これを解決するために、Eclipseは Remote Java Application として1つの追加機能を提供しました
この機能を使用すると、アプリケーションをデバッグできます。
以下の手順に従ってください:
./gradlew bootRun --debug-jvm
コマンドでgradleアプリケーションを実行します
Eclipseに移動->プロジェクトを右クリックし、構成をデバッグ->リモートJavaアプリケーション。
ホストとポートをlocalhostとして追加し、ポートを5005として追加します(gradleデバッグのデフォルトは変更可能です)
参照 詳細と手順について。
Right click on the spring boot project -> debug as -> spring boot App
。デバッガーポイントを配置し、郵便配達員などのクライアントからアプリを呼び出します
Eclipseまたは他のIDEを使用して、メインのスプリングブートアプリケーションを右クリックし、[Javaアプリケーションとしてデバッグ]をクリックします。