EclipseでSpring Bootのウェブアプリ起動時にエラー発生したので、その解決策について説明してます。エラーメッセージは、"Web server failed to start. Port 8080 was already in use."。あと、ウェブアプリのAPサーバTomcatの起動時のポート番号の指定についても説明しています。
※ 本ページはプロモーションが含まれています。
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版
エラーメッセージに"Port 8080 was already in use."とあるので、起動エラーの原因はすでにポート番号8080が使用されている状態なのに、新しくSpring BootのWebアプリを(ポート番号8080で)起動しようとしてもダメですというエラーだと思います。
このエラーが発生する時は、大体Spring BootなどのWebアプリを起動したけど停止するのを忘れてしまい、そして新しくWebアプリを起動した時にエラー発生となる事が多いです(EclipseでWebサーバにTomcatを使用する場合、デフォルトでポート8080を使うので)。
ですので、この場合はポート番号8080を使用している動作中のWebアプリを停止すれば解決できます。
Eclipseで動作中のアプリを停止するには、コンソールタブの上部にある赤い停止ボタンを押せば停止できますが、たぶん起動時に"Port 8080 was already in use."のエラーが出てる状態ではこの停止ボタンは押せないと思います。
そんな時は、コンソールタブ上で右クリック->"すべて終了/切断"を選択すれば、ポート8080を使用しているアプリを終了してくれるので、解決できると思います。
また、コンソールタブ上部の停止ボタンとは別に、Eclipse上部メニューバーにも赤い停止ボタンがあるので、それを押して動作中のアプリを停止しても解決できると思います。
Eclipse上での操作で動作中のアプリを停止できない場合、もしくはEclipseとは関係なくどこかでポート8080が使用されている場合、ターミナルでlsofコマンドを使用してポート8080のプロセスを確認する事ができます。
$ 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)
ポート8080のプロセスIDが確認できたら、killコマンドでそのプロセスを停止する事ができます。$ kill 41351
ポート番号8080を使用しているプロセスが別にあって、そのプロセスを削除したくない場合、Spring Boot(が使用しているアプリケーションサーバのTomcat)を別のポート番号で起動するというのも1つの手です。
起動するポート番号の設定は、src/main/resourcesディレクトリ下のapplication.propertiesファイル内の"server.port"でできます。
server.port=8090
これは、ポート番号8090でウェブアプリを起動するように設定しています。
Spring Boot2で日記投稿ウェブアプリ開発入門トップページ
Spring Bootでシンプルな日記投稿ウェブアプリの開発しながら、入門者・初心者にもわかりやすいように説明しています。DBを使用して、新規投稿、編集、削除、一覧表示という基本的なCRUD機能を備えたアプリです。