LoginSignup
0
0

More than 1 year has passed since last update.

[Tomcat]久しぶりにTomcatを起動したら、ポートの競合が起きていた件⇒その対処

Posted at

はじめに

私は過去の研修にて、Tomcatを用いたJava Servlet系のアプリを作ったことがあります。
先日それを久しぶりに起動しようとしたところ、なぜか起動しませんでした…何故だ?!

ポートの競合が起きていた件⇒その対処

原因分析

元々TomcatのHTTP通信用ポート番号は、私の環境では"55000"を使用しておりました。
このためtomcatを起動すると、以下のURLにアクセスできるはずです。
http://localhost:55000/
それができないということで、Tomcat起動時のエラー文を見ると…

16-Aug-2021 13:36:35.625 SEVERE [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-nio-55000"]
 java.net.BindException: Address already in use: bind

何やらポートが既に使われているようでした。

本当にポート番号は"55000"は使われているのか?
下記コマンドで調べると…

PS C:\Users\(ユーザ名)> netstat -nao

アクティブな接続

  プロトコル  ローカル アドレス      外部アドレス           状態            PIDTCP         0.0.0.0:55000          0.0.0.0:0              LISTENING       (PID)
 …

使われてました。
前は競合が起きていなかったので、いつの間にか使われるようになったのでしょう…

対処

対処法として確実なのは、tomcatのポート番号を変えてしまうことです。
tomcatのフォルダのうち"conf"フォルダにある"server.xml"を書き換えます。

conf.xml
    <!-- 変更前 -->
    <Connector connectionTimeout="20000" port="55000" protocol="HTTP/1.1" redirectPort="8443"/>
    <!-- 変更後 -->
    <Connector connectionTimeout="20000" port="55001" protocol="HTTP/1.1" redirectPort="8443"/>

そのうえでtomcatを再起動した結果、

26-Aug-2021 00:23:13.208 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1513 ms

起動URL:http://localhost:55001/

image.png

起動に成功しました。

おわりに

まだまだ私はポート番号のような通信関係の知識が少なく、今回の事象では最初は慌てていました。
この原因として考えられるのは、研修時のテキストにポートの競合に関する記載がなく
結果的に私自身がポート番号を気にしていなかったからと思います。
今後web系の案件に関わる場合、あるいは上流の工程に関わる場合に備えて、
今まで気にしていなかった知識にも目を向けていきたいです。

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