web-dev-qa-db-ja.com

Tomcat 7サーバーを起動できません-Java.net.BindException:アドレスはすでに使用されています

こんにちは私はEclipseからTomcat7サーバーを起動できません。

Eclipseから開始すると、次のエラーログが表示されます。

Jan 11, 2013 10:10:27 AM org.Apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the Java.library.path: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\Jayant\Desktop\data\adt-bundle-windows-x86\Eclipse;;.
Jan 11, 2013 10:10:28 AM org.Apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jan 11, 2013 10:10:28 AM org.Apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jan 11, 2013 10:10:28 AM org.Apache.catalina.startup.Catalina load
INFO: Initialization processed in 1165 ms
Jan 11, 2013 10:10:28 AM org.Apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jan 11, 2013 10:10:28 AM org.Apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.12
Jan 11, 2013 10:10:28 AM org.Apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jan 11, 2013 10:10:28 AM org.Apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jan 11, 2013 10:10:28 AM org.Apache.catalina.startup.Catalina start
INFO: Server startup in 507 ms
Jan 11, 2013 10:10:28 AM org.Apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: create[localhost:8005]: 
Java.net.BindException: Address already in use: JVM_Bind
    at Java.net.DualStackPlainSocketImpl.bind0(Native Method)
    at Java.net.DualStackPlainSocketImpl.socketBind(Unknown Source)
    at Java.net.AbstractPlainSocketImpl.bind(Unknown Source)
    at Java.net.PlainSocketImpl.bind(Unknown Source)
    at Java.net.ServerSocket.bind(Unknown Source)
    at Java.net.ServerSocket.<init>(Unknown Source)
    at org.Apache.catalina.core.StandardServer.await(StandardServer.Java:422)
    at org.Apache.catalina.startup.Catalina.await(Catalina.Java:707)
    at org.Apache.catalina.startup.Catalina.start(Catalina.Java:653)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at Java.lang.reflect.Method.invoke(Unknown Source)
    at org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:303)
    at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:431)

Jan 11, 2013 10:10:28 AM org.Apache.coyote.AbstractProtocolHandler pause
INFO: Pausing ProtocolHandler ["http-bio-8080"]
Jan 11, 2013 10:10:29 AM org.Apache.coyote.AbstractProtocolHandler pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
Jan 11, 2013 10:10:30 AM org.Apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
Jan 11, 2013 10:10:30 AM org.Apache.coyote.AbstractProtocolHandler stop
INFO: Stopping ProtocolHandler ["http-bio-8080"]
Jan 11, 2013 10:10:30 AM org.Apache.coyote.AbstractProtocolHandler stop
INFO: Stopping ProtocolHandler ["ajp-bio-8009"]

現在、次のエラーが発生しています。

Jan 11, 2013 10:18:59 AM org.Apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the Java.library.path: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\Jayant\Desktop\data\adt-bundle-windows-x86\Eclipse;;.
Jan 11, 2013 10:19:00 AM org.Apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jan 11, 2013 10:19:00 AM org.Apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jan 11, 2013 10:19:00 AM org.Apache.catalina.startup.Catalina load
INFO: Initialization processed in 872 ms
Jan 11, 2013 10:19:00 AM org.Apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jan 11, 2013 10:19:00 AM org.Apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.12
Jan 11, 2013 10:19:00 AM org.Apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jan 11, 2013 10:19:00 AM org.Apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jan 11, 2013 10:19:00 AM org.Apache.catalina.startup.Catalina start
INFO: Server startup in 535 ms
Jan 11, 2013 10:20:13 AM org.Apache.catalina.core.StandardServer await
WARNING: StandardServer.await: Invalid command 'GET / HTTP/1.1' received
Jan 11, 2013 10:20:19 AM org.Apache.catalina.core.StandardServer await
WARNING: StandardServer.await: Invalid command '' received
8
user1844638

管理ポートは管理コマンドを受信するためのものであり、HTTPポートはHTTP要求を受信するためのものです。別のポートを使用する必要があります。サーバーがすでにそのポートを開いているため、HTTPコネクタを起動できませんでした。ブラウザ/クライアント/管理ポートにリクエストを送信したものは何でも、サーバーはHTTPを理解せず、このエラーをログに記録します。

Tomcatを別のポートに再インストールしてみてください。

10
Nirav Tukadiya

私はこの問題を抱えていました(ポート8005はすでに使用されています)。根本的な原因は、既存のTomcatプロセスがすでに私のマシンで実行されていることが原因でした。したがって、私がする必要があるのは、基本的に既存のプロセスを強制終了し、Tomcatを再起動することでした。

4
pedrobisp

Server.xmlファイルに移動して変更します

<Server port="8005" shutdown="SHUTDOWN">

<Server port="8006" shutdown="SHUTDOWN">

変更の理由は、投稿の1つに記載されています

2
Aravind Kumar

使用する:

pkill -f Tomcat

既存または応答しないTomcatインスタンスまたはプロセスを削除します。

start Tomcat. 
2
Ammad

Linuxシステムを使用している場合は、ターミナルでps -ef | grepTomcatと入力します。次に、プロセスID(PID)を見つけます。次に、ターミナルでkill-9と入力します。次に、Tomcatサーバーを起動します。

1
Biswajit Sahu

この問題を解決する2つの方法:

1> Tomcatサーバーのインストールディレクトリに移動し、server.xmlファイルを開いて、

コネクタとサーバーのポートは異なります。そうでない場合は、それらを異なるポートにしてから、これらのポートで何も実行されていないかどうかを確認してください

2>コマンドプロンプトを開始から開き、netstat -ano |と入力します。ポートが使用されているかどうかを確認するには、findstr8010を使用します。それらを使用すると、TCP 0.0.0.0:8005 0.0.0.0:0 LISTENING 4 TCP [::]:8005 [::] :0リスニング4

次に、a>タスクマネージャーからプロセスID(私の場合は4)を使用してプロセスを強制終了します

それらが使用されていない場合は、cmdに何も表示されません

1
ashwin

よくある間違いは、server.xml構成ファイルで同じシャットダウンポートとコネクタポートを使用することです。

これらのポートは異なっている必要があり、正しい例を次に示します。

<Server port="8005" shutdown="SHUTDOWN">
    <Connector port="8983" protocol="HTTP/1.1"

デフォルトでは、Tomcatはポート8005でSHUTDOWNコマンドをリッスンし、コネクタポートとは常に異なる必要があります。

ポートがまだ使用されている場合は、Sudo lsof -i:8005を試して理由を見つけてください。

1
kenorb

あなたができることは、Tomcatディレクトリ/conf/server.xmlに行くことができるプロセスを殺すのではなく、ここでシャットダウンポート(8005)を他のポートに変更することができます。また、デフォルトポート(8080)およびその他を別のポートに変更します。したがって、Tomcatの複数のインスタンスを単一のマシンで実行できます。サーバーを再起動します(それでも問題が解決しない場合)Eclipseでサーバーを再作成します。

0
Jay Trivedi