Spring Boot起動時にエラー、"Web server failed to start. Port 8080 was already in use."

EclipseでSpring Bootのウェブアプリ起動時にエラー発生したので、その解決策について説明してます。エラーメッセージは、"Web server failed to start. Port 8080 was already in use."。あと、ウェブアプリのAPサーバTomcatの起動時のポート番号の指定についても説明しています。

目的と環境

最終更新日:2021/5/5

EclipseでSpring Bootのウェブアプリを起動した時に、コンソールタブに下記のエラーが発生したので、解決策と対処法についてです。

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2020-11-29 14:09:08.095 ERROR 41363 --- [  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.

・開発環境やバージョン情報です。
OS:macOS Big Sur(バージョン11.0.1)
Eclipse:Pleiades All in One、4.16(2020-06)、Java Full Edition版(*2020/8/28時点の最新安定版です)

ポート番号8080を使用しているプロセスを削除する

エラーメッセージに"Port 8080 was already in use."とありますので、エラーの原因はすでにポート番号8080が使用されているから新規にSpring Bootのウェブアプリをポート番号8080で起動できないという事だと思います。

すでにポート番号8080を使用しているアプリが同じEclipse上から起動したウェブアプリだとわかっていて、そのタスクを削除しても問題ないならば、コンソールタブで右クリック->"すべて終了/切断"を選択すれば、ポート8080を使用しているアプリを終了してくれるので、解決できると思います。

また、ターミナル上から8080ポートを使用しているプロセスを終了させたい場合、lsofコマンドで8080ポートを使用しているプロセスIDを調べて、そのプロセスIDをkillコマンドで終了させます。

$ lsof -i:8080
COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    41351 huser  88u  IPv6 0xe1**********d05b      0t0  TCP *:http-alt (LISTEN)

$ kill 41351

起動するTomcatのポート番号を指定する

ポート番号8080を使用しているプロセスが別にあって、そのプロセスを削除したくない場合、Spring Boot(が使用しているアプリケーションサーバのTomcat)を別のポート番号で起動するというのも1つの手です。

起動するポート番号の設定は、src/main/resourcesディレクトリ下のapplication.propertiesファイル内の"server.port"でできます。

server.port=8090
これは、ポート番号8090でウェブアプリを起動するように設定しています。

その他のSpring Boot、Eclipseのページ

Spring Boot2で日記投稿ウェブアプリ開発入門トップページ
Spring Boot2.3,2.4でシンプルな日記投稿ウェブアプリの開発しながら、入門者・初心者にもわかりやすいように説明しています。DBを使用して、新規投稿、編集、削除、一覧表示という基本的なCRUD機能を備えたアプリです。

Eclipse関連ページのサイトマップ