2
1

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.

HerokuにSpring Bootアプリをデプロイするときに出たエラーメッセージと解決した方法

Last updated at Posted at 2021-10-23

Herokuに初めてSpring Bootアプリをデプロイしたときに出たエラーメッセージと、どうしたら解決したかをまとめておきます。一般論については公式サイトや多くの優れた記事が既にあるので、この記事では私がハマったときに表示されたエラーメッセージ等と、それをどう解決したかを一般化せずそのまま書いていきます。同じ状況にある人の参考になれば幸いです。
#筆者の環境
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
javac 11.0.2
Apache Maven 3.8.2
#Exception in thread "main" java.lang.UnsupportedClassVersionError: xxx has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
##解決方法:system.propertiesjava.runtime.version=11を記入する
コンパイルした環境と実行環境のバージョンが合っていないときに出るエラーのようです。
公式サイトによると

Heroku は現在、デフォルトで OpenJDK 8 を使用してアプリケーションを実行しています。

とのこと。自分の環境は上記の通りバージョン11なので、これによりバージョンが合わない旨のエラーが出ているようです。公式サイトの記述に従い、自分の環境に合わせて、system.properties

java.runtime.version=11

を記入することで解決しました。
#Error: Unable to access jarfile target/xxx-0.0.1-SNAPSHOT.jar
##解決方法:git add -f オプションでtarget/xxx-0.0.1-SNAPSHOT.jarをコミット対象に含める
下記の記事が大変参考になりました。
https://qiita.com/hiroki1994/items/325fdf7e5943a563867f

Procfile内で指定されているjarファイルが、.gitignoreファイル上でコミット対象に含まないようになっていたらしく、これにより、デプロイしてもjarファイルにアクセスできないというエラーになるようです。

git add -f target/xxx-0.0.1-SNAPSHOT.jar

により、実行したいjarファイルを強制的にコミット対象に含めることで解決しました。
#Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 90 seconds of launch
##解決方法:Procfile--server.port=$PORTを記入する
以下のページが参考になりました。
https://devcenter.heroku.com/ja/articles/setting-the-http-port-for-java-applications#spring-boot
https://su-kun1899.hatenablog.com/entry/2017/07/23/230000

herokuでは起動ポートが動的に変わるようなので、Spring Boot側のポート番号もherokuの環境変数で書き換える必要があるようです。
Procfile--server.port=$PORTを追記して

web: java -jar target/xxx-0.0.1-SNAPSHOT.jar --server.port=$PORT

とすることで解決しました。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?