0
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 3 years have passed since last update.

コンパイルしたJavaのバージョンとデプロイするJavaのバージョンがズレているとエラーになる話

Last updated at Posted at 2021-10-19

テスト済みのWARファイルをDockerで動かそうとしたら以下のエラーになってしまった…ということがあったので、原因と解決方法をメモ
java.lang.UnsupportedClassVersionError: ukaf/simple2/WelcomeResource has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 60.0 (クラス[ukaf.simple2.WelcomeResource]をロードできません)
※ビルド~デプロイまでは正常に終わったのですが、以下のリクエストでAPIアクセスしたときにエラーになりました
http://localhost:8080/simple2/webapi/welcome?name=YOURNAME
##原因
タイトルにほぼ答えを書いてしまったのですが、ビルドしたときのJavaバージョンと実行するときのJavaバージョンにズレがあったのでエラーになっているそうです。
ビルド…WARファイルはEclipseで作ったプロジェクトから生成していたので、該当プロジェクトのプロパティを確認したところJava17でした。
※プロジェクトを右クリックで「プロパティー」を選択→「Javaのビルド・パス」をクリックしてJREシステムライブラリを確認
実行…Dcoker runしたときのコンソール画面を確認したところ以下のようなログがあったのでJava11っぽいです。
19-Oct-2021 08:41:54.371 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/local/openjdk-11
##解決方法
ビルド時のJavaバージョンをJava11に設定して再ビルド・デプロイ→WARエクスポート→Dockerでビルド・デプロイ したところ、正常に動くようになりました。
##参考
これ↓をやっている中で起きた話なので、詳しい経緯や手順についてはこちらを見ていただけると幸いです
簡単なJSPとJavaのセットを作ってDockerで動かす

0
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
0
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?