サンプル集 |
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■other |
Linuxコマンド |
用語集 |
debian メモ |
apache2 メモ |
MySQL メモ |
Oracle メモ |
HOME |
eclipseからTomcatを起動したときに以下のエラーが出ました。
SEVERE: エンドポイントを初期化中のエラーです
java.net.BindException: Address already in use: JVM_Bind:8080
at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpE
ndpoint.java:311)
at org.apache.coyote.http11.Http11BaseProtocol.init(Http11BaseProto
col.java:139)
java.net.BindException: Address already in use: JVM_Bind:8080
at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpE
ndpoint.java:311)
at org.apache.coyote.http11.Http11BaseProtocol.init(Http11BaseProto
col.java:139)
◆環境
OS | Windows 7 Professional Service Pack 1 (64bit) |
---|---|
eclipse | Helios Service Release 2 |
tomcat | 5.5 |
tomcat plugin | 3.3.0 |
メッセージの通り、8080ポートが既に使われているようです。 netstatコマンドで状況を確かめます。
>netstat -oan
アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態 PID
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 816
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1521 0.0.0.0:0 LISTENING 1352
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 1628
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1352
TCP 0.0.0.0:17500 0.0.0.0:0 LISTENING 2816
TCP 0.0.0.0:49152 0.0.0.0:0 LISTENING 552
:
略
アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態 PID
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 816
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1521 0.0.0.0:0 LISTENING 1352
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 1628
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1352
TCP 0.0.0.0:17500 0.0.0.0:0 LISTENING 2816
TCP 0.0.0.0:49152 0.0.0.0:0 LISTENING 552
:
略
PID:1352が8080を使ってますね。 tasklistで1352のプログラムを特定します。
ちなみに1352のプログラムは1521も使ってますね。
>tasklist
イメージ名 PID セッション名 セッション# メモリ使用量
==================== ===== ============= =========== ============
System Idle Process 0 Services 0 24 K
System 4 Services 0 3,104 K
smss.exe 388 Services 0 1,424 K
:
TNSLSNR.EXE 1352 Services 0 41,300 K
:
イメージ名 PID セッション名 セッション# メモリ使用量
==================== ===== ============= =========== ============
System Idle Process 0 Services 0 24 K
System 4 Services 0 3,104 K
smss.exe 388 Services 0 1,424 K
:
TNSLSNR.EXE 1352 Services 0 41,300 K
:
TNSLSNR.EXEが8080を使っているという事が分かりました。
Oracle Database XEのhttpリスナーのポートが8080になっていたためtomcatのデフォルトポートとぶつかっている事が原因でした。 8080はtomcatで使いたいのでOracleの方のポート番号を変更します。 ポート番号を変えるにはSQL*Plusにsystemでログインしコマンドを実行します。
今回は28080にポートを変更してみました。
SQL> exec dbms_xdb.sethttpport(28080)
PL/SQLプロシージャが正常に完了しました。
PL/SQLプロシージャが正常に完了しました。
これでtomcat起動時のBindエラーが出なくなりました。
参考
winsock2 I connectエラー処理追加
netstatで待ち受けIP、ポートを確認する例です。
Copyright (C) 2013 ymlib.com