Eclipse IDE(Spring Tool Suite))でデバッグモードでSpring Bootプロジェクトを実行するたびに、ブレークポイントがなくても「throw new SilentExitException();」行でスレッドが停止します。
この動作を回避するための解決策はありますか?
org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread()(53行目):
public static void exitCurrentThread() {
throw new SilentExitException();
}
これは、1.3.0マイルストーンへのアップグレード後に発生し始めます。
Spring Tool Suiteバージョン:3.7.0.RELEASEビルドID:201506290649プラットフォーム:Eclipse Luna SR2(4.4.2)
残念ながら、これは新しいspring-boot-devtools
モジュールの既知の問題です( https://github.com/spring-projects/spring-boot/issues/31 を参照)。このトリックを使用してメインスレッドを強制終了し、再読み込み可能なバージョンに置き換えることができます。これまでのところ、デバッグブレークポイントがトリガーされるのを防ぐ方法は見つかりませんでした。
今のところ、Java->デバッグ設定で発生しないように、キャッチされない例外で実行を中断する]チェックボックスを切り替えることができます。
Eclipse on Debugモードではすでに限定的なホットパッチが許可されているため、ほとんどの場合、リローダーは非生産的であるため、次の方法で無効にすることにしました。
System.setProperty("spring.devtools.restart.enabled", "false");
この例外はリローダーによってスローされるため、この問題も解決します。 System.setProperty
で設定する代わりに、application.properties
メソッドを使用する必要があることに注意してください。
スコープランタイムでdevtoolsを実行してみてください:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>