web-dev-qa-db-ja.com

Tomcatが起動しません(Java.net.BindExceptionがスローされます:)

Java Webプロジェクトを実行するために次の設定を行いましたが、どういうわけか私のTomcatはEclipseから起動していません。

Java_HOME : C:\Program Files\Java\jdk1.6.0_03  
PATH : C:\Program Files\Java\jdk1.6.0_03\bin  
CATALINA_HOME : D:\javaworkspaces\Apache-Tomcat-7.0.27  

次に、必要に応じて、Eclipseから新しいサーバーをセットアップし、Tomcatのインストールパスを指定します。

いくつかのフォーラムでアドバイスされているように、Tomcat-juli.jarクラスパスへ。
これらすべてにもかかわらず、Tomcat Serverを起動しようとすると、Tomcatが45秒以内に開始しないというエラーが表示されます。

次のログメッセージが表示されます。

Jul 26, 2012 5:49:34 PM 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\jre6\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:\Program Files\TortoiseSVN\bin;C:\Program Files\Java\jdk1.6.0_03\bin;D:\Eclipse-jee-Indigo-SR2-win32\Eclipse;;.  
Jul 26, 2012 5:49:34 PM org.Apache.Tomcat.util.digester.SetPropertiesRule   
 begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property         'source' to 'org.Eclipse.jst.j2ee.server:JEE_Day01' did not find a matching property.  
Jul 26, 2012 5:49:34 PM org.Apache.coyote.AbstractProtocol init  
INFO: Initializing ProtocolHandler ["http-bio-80"]  
Jul 26, 2012 5:49:35 PM org.Apache.coyote.AbstractProtocol init  
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]  
Jul 26, 2012 5:49:35 PM org.Apache.coyote.AbstractProtocol init  
SEVERE: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8009"]  
Java.net.BindException: Address already in use: JVM_Bind <null>:8009  
at org.Apache.Tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.Java:393)
at org.Apache.Tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.Java:566)
at org.Apache.coyote.AbstractProtocol.init(AbstractProtocol.Java:417)
at org.Apache.catalina.connector.Connector.initInternal(Connector.Java:956)
at org.Apache.catalina.util.LifecycleBase.init(LifecycleBase.Java:102)
at org.Apache.catalina.core.StandardService.initInternal(StandardService.Java:559)
at org.Apache.catalina.util.LifecycleBase.init(LifecycleBase.Java:102)
at org.Apache.catalina.core.StandardServer.initInternal(StandardServer.Java:814)
at org.Apache.catalina.util.LifecycleBase.init(LifecycleBase.Java:102)
at org.Apache.catalina.startup.Catalina.load(Catalina.Java:624)
at org.Apache.catalina.startup.Catalina.load(Catalina.Java:649)
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.load(Bootstrap.Java:281)
at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:449)  
Caused by: Java.net.BindException: Address already in use: JVM_Bind
at Java.net.PlainSocketImpl.socketBind(Native Method)
at Java.net.PlainSocketImpl.bind(Unknown Source)
at Java.net.ServerSocket.bind(Unknown Source)
at Java.net.ServerSocket.<init>(Unknown Source)
at Java.net.ServerSocket.<init>(Unknown Source)
at org.Apache.Tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.Java:49)
at org.Apache.Tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.Java:380)
... 16 more  
Jul 26, 2012 5:49:35 PM org.Apache.catalina.core.StandardService initInternal    
    SEVERE: Failed to initialize connector [Connector[AJP/1.3-8009]]
org.Apache.catalina.LifecycleException: Failed to initialize component [Connector[AJP/1.3-8009]]  
at org.Apache.catalina.util.LifecycleBase.init(LifecycleBase.Java:106)  
    at org.Apache.catalina.core.StandardService.initInternal(StandardService.Java:559)  
at org.Apache.catalina.util.LifecycleBase.init(LifecycleBase.Java:102)
at org.Apache.catalina.core.StandardServer.initInternal(StandardServer.Java:814)
at org.Apache.catalina.util.LifecycleBase.init(LifecycleBase.Java:102)
at org.Apache.catalina.startup.Catalina.load(Catalina.Java:624)
at org.Apache.catalina.startup.Catalina.load(Catalina.Java:649)
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.load(Bootstrap.Java:281)
at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:449)  
Caused by: org.Apache.catalina.LifecycleException: Protocol handler initialization failed
at org.Apache.catalina.connector.Connector.initInternal(Connector.Java:958)
at org.Apache.catalina.util.LifecycleBase.init(LifecycleBase.Java:102)
... 12 more

複数のフォーラムを紹介しましたが、状況にひどくこだわっています。案内してください。

23
user1649415

これらの行:

SEVERE: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8009"]
Java.net.BindException: Address already in use: JVM_Bind <null>:8009  

ポート8009でサービスが既に実行されていることを意味します。Tomcat(with ajp)は既に実行されていますか?

8009で実行されているサービスが必要な場合、server.xmlのコネクタ構成を次のように変更できます。

<Connector port="8089" protocol="AJP/1.3" redirectPort="8443" />
23
olly_uk

ポート番号8009は、OSで実行中の他のプロセスによってすでに占有されています そのプロセスを検索して停止してください または、Tomcatを別の(空き)ポートで実行する

10
Jigar Joshi

このポートでそれぞれの(リスニング)プロセスを強制終了します。つまり8009。

netstat -a -o -n

プロセスのPIDを探します。次のようになりますTCP [::]:8009 [::]:0 LISTENING 892

taskkillコマンドを使用してプロセスを強制終了します。例:

taskkill /F /PID 892

6
Sadique Khan

Java.net.BindException:すでに使用されているアドレス:JVM_Bind:8009

これは、他のプロセスがすでにこのポートを使用していることを意味します。別のTomcatインスタンスである可能性がありますか?

5
Cratylus

この問題を修正するためにserver.portを変更する必要はないはずです...

Mac/Unix/Linuxユーザー:Tomcatを再起動した後、この問題が引き続き発生する場合は、Tomcatが不適切にシャットダウンされ、リソースが残っていることが原因である可能性がありますそれに関連付けられ、現在ロックされています。次のコマンドを実行すると、これらのリソースのPIDを表示できます。

lsof | grep Tomcat

以下を使用してこれらのプロセスを終了します。

kill -15 <PID>

これで問題が解決するはずです。

kill -15コマンドを使用して、SIGKILL(-9)よりもプロセスをTERM(-15)にすることをお勧めします。 -15スイッチは、プロセスにシャットダウンフェーズを開始し、制限されたリソースをクリーンアップする信号を送信します。

2
cosbor11

動作しない場合は:http:// localhost:8089を試してください(または)これを試してください:Set:JRE_HOME:C:\ Program Files\Java\jre1.5.0_11(JREのバージョンに依存)およびC:\を追加しますFiles¥Java¥jre1.5.0_11(JREのバージョンに依存)¥binをプログラムし、Eclipseのパスに移動します-> Windowsの設定に移動します。

0
BloodRed

使用可能なポートをすべて、空いているポートで1つずつ更新します。これで問題を解決する必要があります

31-Jul-2019 16:28:30.641 SEVERE [main] org.Apache.catalina.core.StandardServer.await StandardServer.await:create [localhost:8005]:Java.net.BindException:アドレスすでに使用中:JVM_Bind

0
Bharath Kumar

他の何かがポート8009を使用しています。

8009を使用しているものをシャットダウンするか、server.xmlを変更して8009以外のポートを使用します

0
vishal

TIL:サーバー上の他の誰かが、ポート80でIISを開始し、誰にも通知しない。
Tomcatを同じポートに設定している場合、このエラーも報告されます。
IISまたはTomcatのポートを変更する必要があります。

IISのポートを変更するには:
管理ツール|インターネットインフォメーションサービス(IIS)マネージャー
デフォルトWebサイトを右クリック|バインディングの編集...ポートの変更

-または-

Tomcatのポートを変更するには:
conf\server.xmlを開き、タグのポート値を更新します。

<Connector port="80" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443"
    URIEncoding="UTF-8"/>

Tomcatを再起動します

2つのWebサービスをお楽しみください。

0
BobTheShrew

これは通常、Tomcatのコネクタ/シャットダウンポートが既に使用されている場合に発生します。最初に、shutdown.batを実行します(Tomcatの1つのインスタンスが既に実行されていることを忘れる場合があります)次に、コマンドプロンプトの実行で

netstat -aon | findstr 0.0:<your port number which is giving bind exception>

現在ポートを使用しているアプリケーションのPIDを取得します。そのアプリケーションを強制終了するか、実行時にリストされていない他のポートを使用します

netstat -a -o -n
0
Sagar Mhatre