最近はVisual Studio Codeを使って、Spring Bootの学習をしています。
しかしいきなり、今まで起動していたSpring Bootアプリケーションが起動できなくなった。
そのため色々やってみての解決策を備忘として残すことにします。
目次
事象
エラーの状態とエラーメッセージを記録していなかったので、事象の説明をすることにします。
Spring Bootアプリケーションを起動しようとしたら、「NoClassDefFoundError」が表示され起動しない。
各ファイルで色々コードを見ていくと、Spring Bootアノテーションやimport文にエラーを示す赤い下線が表示され、依存解決されない状態としてVisual Studio Codeに認識される。
解決策
Visual Studio Codeにインストールしていた拡張機能「Spring Boot Extentsion Pack」を再インストールした。
実施は以下の流れで実施した。
- インストール済み拡張機能から「Spring Boot Extentsion Pack」を選択しアンインストール
- Visual Studio Codeを再起動
- インストール済み拡張機能から、「Spring Boot Extentsion Pack」と、それに伴って導入されていたSpring Boot関連拡張機能が表示されていないことを確認。
- 拡張機能の検索から、Springで検索し、再度「Spring Boot Extentsion Pack」をインストール
- しばらくすると右下にポップアップが表示され「Language Support for Java(TM) by Red Hatredhat.java」をインストールするか聞かれるのでYEStをクリック(インストール済みだが聞かれているので一応YES)
最後にVisual Studio Codeを再起動したかは忘れてしまったが、
だいたい上記のような流れで拡張機能の再インストールを実施後、コードのSpring Bootアノテーションからエラーを示す赤い下波線が消え、
デバッグコンソールにもエラーは表示されなくなった。
この状態だとSpring Bootアプリケーションが起動できるようになり、ブラウザからもアクセスできるようになった。
想定される原因
結局今まで動いていたコードが何故急に動かなくなったのか真の原因は分かっていない。
想定されるのはVisual Studio Codeのバージョンアップだ。
僕はVisual Studio Codeの更新通知を確認したらすぐ更新するからだ。
おそらくそれが原因だろう。
何故ならJavaのバージョンを変更したわけでもないし、Visual Studio Codeの拡張機能を追加・削除もしていないからだ。
もちろんJavaコードの変更もしていない。
ということで、Visual Studio Codeのバージョンアップ後に同様の状態になった場合は、
ある程度原因の調査してみて解決しない場合は、拡張機能の再インストールを試みてみるのもいいと思う。