本ページはプロモーションが含まれています。

スポンサーリンク

エラー・例外

SpringBootのポート指定方法 Web server failed to start. Port 8080 was already in use. 

投稿日:2021年2月11日 更新日:

発生時のログ

2021-02-11 11:15:13.926 ERROR 10492 --- [  restartedMain] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

Web server failed to start. Port 8080 was already in use.

Action:

Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.

Web server failed to start. Port 8080 was already in use.の発生理由

8080ポートでサーバーを起動しようとしたが、既に8080ポートが使われているため、サーバーが起動できなかった。

IntelliJやEclipseで何度もSpringBootアプリケーションを再起動していると、動いているSpringBootアプリケーションが終了されずに残ってしまうことがあります。

その状態でSpringBootアプリケーションを起動しようとすると、残っているものとバッティングするため、「Web server failed to start. Port 8080 was already in use.」が発生します。

解決策1–既に起動されているサーバーを終了させる。

Windowsの場合

1.ポートを利用しているPIDを特定する

>netstat -nao | find "8081"
  TCP         0.0.0.0:8081           0.0.0.0:0              LISTENING       13048
  TCP         [::]:8081              [::]:0                 LISTENING       13048

上記コマンドを打って、指定ポートを使用しているPIDを調べます。
上の結果では、PID=13048が8081を使用していると判明しました。

2.PIDを元にプロセスを終了させる

タスクマネージャーを開き、詳細タブを見ます。
PID列が1で調べたPIDになっている行を見つけます。
その行を選択し、右下のタスクの終了を押します。

「javaw.exeを終了しますか?」と聞かれるため、「プロセスの終了」を押してください。

リストから「javaw.exe」が消えたら(プロセスが終了できたら)、IntelliJまたはEclipseでいつも通り起動することができるようになっています。

補足 javaw.exeって?

「javaw.exe」はSpringBootアプリケーションを起動するときに、Eclipse等が裏で実行しているプログラムです。

Mac/Linuxの場合

lsofコマンドで8080ポートを使用しているPIDを調べて、killコマンドでそのPIDを終了させます。

$ lsof -i:8080

COMMAND PID USER
java.   1234 xxx

$ kill 1234
($ kill -9 5703)

$ kill PID で消えない場合は、-9オプションを付与すると、強制終了できます。

解決策2–別のポート番号を指定して起動する。

Spring Bootでは、プロパティファイル(application.ymlまたはapplication.properties)でサーバーのポート番号を指定できます。
8081は任意のポート番号を指定できます。

server:
  port: 8081
server.port=8081

ポート番号を記述してから、サーバーを起動すると、8080ではなく指定したポート番号で起動できるため、正常にサーバーを起動できるようになります。

フロントエンドとバックエンドを分けて開発している場合、フロントエンド(例えばvue.js)が8080で起動されている時に、バックエンドのSpringBootアプリケーションも8080で起動しようとして「Web server failed to start. Port 8080 was already in use.」が発生するケースが多いです。

本ページはプロモーションが含まれています。

Udemyのハンズオン動画講座でSpringBootのスキルを磨く!

スポンサーリンク

-エラー・例外

Copyright© 【Spring Hack】 , 2024 All Rights Reserved Powered by AFFINGER5.