23

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サーバーを起動しようとすると、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

私は複数のフォーラムを紹介しましたが、状況にひどく立ち往生しています。案内してください。

4

11 に答える 11

24

これらの行:

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(ajpを使用)はすでに実行されていますか?

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

<Connector port="8089" protocol="AJP/1.3" redirectPort="8443" />
于 2012-09-18T16:24:23.223 に答える
10

ポート番号8009 は、OSで実行されている他のプロセスによってすでに占有されていることを示しています。そのプロセスを検索して停止するか、Tomcatを別の(無料の)ポートで実行するようにしてください。

于 2012-09-18T16:24:21.027 に答える
7

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

netstat -a -o -n

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

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

taskkill /F /PID 892

于 2014-05-13T07:28:32.673 に答える
5

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

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

于 2012-09-18T16:24:28.013 に答える
0

動作しない場合は:http:// localhost:8089を試してください(または)これを試してください:Set:JRE_HOME:C:\ Program Files \ Java \ jre1.5.0_11(JREのバージョンによって異なります)C:\を追加しますProgram Files \ Java \ jre1.5.0_11(JREのバージョンによって異なります)\ bin to path Eclipse-> Windowsの設定に移動:server-> RuntimeEnvironment追加されたサーバーとRefereshを削除し、新しいTomcatServerを追加します

于 2012-09-18T17:33:05.857 に答える
0

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

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

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

netstat -a -o -n
于 2015-10-15T08:26:24.503 に答える
0

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 サービスをお楽しみください。

于 2013-06-10T18:51:36.493 に答える