3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Spring Boot 1.5.12 へアップデートする時に直した箇所・ハマった事

Posted at

はじめに

元々作成していたプロジェクトがSpring Boot 1.3.3だったのですが、
4月にSpring Frameworkの脆弱性の件があったので、
それに対応したSpring Boot 1.5.12にバージョンアップする事になりました。

単純にpom.xmlでバージョンを書き換えるだけではもちろんダメだったので…
その時に発生した問題やその解消方法を以下に載せます。

テストコードのコンパイルエラー

テストコードにて以下の二つのアノテーションを使用していましたが、
バージョンアップに伴い「見つかりませんよ」と怒られるようになってしまいました。

@SpringApplicationConfiguration(classes=MyConfig.class)
@WebIntegrationTest

調べたところ、以下のページにて両方とも@SpringBootTestを代わりに使用する形になるとのこと。
https://stackoverflow.com/questions/42395225/springapplicationconfiguration-not-found-erroneous-spring-boot-starter-test-con

From @SpringApplicationConfiguration(classes=MyConfig.class) to @SpringBootTest(classes=MyConfig.class)
From @WebIntegrationTest to @SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT) (or RANDOM_PORT)

今回は両方使っていたので、以下のように書き換えました。
@SpringBootTest(classes=MyConfig.class, webEnvironment=WebEnvironment.RANDOM_PORT)

以上にて、テストコードのエラーは解消しました。

インタフェースが見つからないエラー

エラー画面を表示するためにEmbeddedServletContainerCustomizerインタフェースをimportしていたのですが、
バージョンアップ後ビルドすると「見つからないよ」と怒られるようになってしまいました。
ほんとか?と思いながら上記のテストコードのように代替を探したのですが見つからず…。

本当に無いのかな?と思い、spring-boot-1.5.12.RELEASE.jarの下の階層を探ってみると、
EmbeddedServletContainerCustomizerインタフェースのファイル自体は存在していました。

その上で中身を見ようとすると以下のエラーが発生しており、中身を見れない状態。```
java.util.zip.ZipException: invalid LOC header (bad signature)


調べてみると、jarファイルのバージョンがおかしい事が原因らしい?
対応方法として以下のmavenのリポジトリフォルダを削除してSTSを再起動する。
> C:\Users\[ユーザー名]\.m2\repository

以上で、インタフェースが見つからないエラーの対応は完了です。

# プロジェクト実行時のエラー

上記二つの対応とは別に、
バージョンアップ後にとりあえずプロジェクトを実行してみようと思ったところ、
以下のような絶望的なエラーが発生。

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at jp.co.ysk.pepper.qlip.App.main(App.java:12)
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more


少し調べてみたのですが、根本的な原因はわからず。
とりあえず二つのコンパイルエラーを解消していくとこのエラーも解消されました。

少し不安の残る感じですが…以上です。
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?