EclipseでTomcatを起動すると、次のメッセージが表示されます。
LocalhostのTomcat v6.0サーバーに必要なポート8009はすでに使用されています。サーバーがすでに別のプロセスで実行されているか、システムプロセスがポートを使用している可能性があります。このサーバーを起動するには、他のプロセスを停止するか、ポート番号を変更する必要があります。
tomcatを手動で起動すると、次の例外トラックが表示されます。
C:\Apache-Tomcat-6\bin>catalina.bat run
Using CATALINA_BASE: "C:\Apache-Tomcat-6"
Using CATALINA_HOME: "C:\Apache-Tomcat-6"
Using CATALINA_TMPDIR: "C:\Apache-Tomcat-6\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk1.6.0_20"
Using CLASSPATH: "C:\Apache-Tomcat-6\bin\bootstrap.jar"
Dec 14, 2011 11:32:17 AM org.Apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.22.
Dec 14, 2011 11:32:17 AM org.Apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], r
andom [true].
Dec 14, 2011 11:32:20 AM org.Apache.coyote.http11.Http11AprProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Dec 14, 2011 11:32:20 AM org.Apache.coyote.ajp.AjpAprProtocol init
SEVERE: Error initializing endpoint
Java.lang.Exception: Socket bind failed: [730048] Only one usage of each socket
address (protocol/network address/port) is normally permitted.
at org.Apache.Tomcat.util.net.AprEndpoint.init(AprEndpoint.Java:649)
at org.Apache.coyote.ajp.AjpAprProtocol.init(AjpAprProtocol.Java:160)
at org.Apache.catalina.connector.Connector.initialize(Connector.Java:104
9)
at org.Apache.catalina.core.StandardService.initialize(StandardService.j
ava:703)
at org.Apache.catalina.core.StandardServer.initialize(StandardServer.jav
a:838)
at org.Apache.catalina.startup.Catalina.load(Catalina.Java:538)
at org.Apache.catalina.startup.Catalina.load(Catalina.Java:562)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
Java:39)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.Java:25)
at Java.lang.reflect.Method.invoke(Method.Java:597)
at org.Apache.catalina.startup.Bootstrap.load(Bootstrap.Java:261)
at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:413)
Dec 14, 2011 11:32:20 AM org.Apache.catalina.core.StandardService initialize
SEVERE: Failed to initialize connector [Connector[AJP/1.3-8009]]
LifecycleException: Protocol handler initialization failed: Java.lang.Exception
: Socket bind failed: [730048] Only one usage of each socket address (protocol/n
etwork address/port) is normally permitted.
at org.Apache.catalina.connector.Connector.initialize(Connector.Java:105
1)
at org.Apache.catalina.core.StandardService.initialize(StandardService.j
ava:703)
at org.Apache.catalina.core.StandardServer.initialize(StandardServer.jav
a:838)
at org.Apache.catalina.startup.Catalina.load(Catalina.Java:538)
at org.Apache.catalina.startup.Catalina.load(Catalina.Java:562)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
Java:39)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.Java:25)
at Java.lang.reflect.Method.invoke(Method.Java:597)
at org.Apache.catalina.startup.Bootstrap.load(Bootstrap.Java:261)
at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:413)
Dec 14, 2011 11:32:20 AM org.Apache.catalina.startup.Catalina load
INFO: Initialization processed in 5684 ms
Dec 14, 2011 11:32:21 AM org.Apache.catalina.core.StandardService start
INFO: Starting service Catalina
Dec 14, 2011 11:32:21 AM org.Apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.35
Dec 14, 2011 11:32:21 AM org.Apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor Host-manager.xml
Dec 14, 2011 11:32:23 AM org.Apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml
Dec 14, 2011 11:32:23 AM org.Apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
Dec 14, 2011 11:32:23 AM org.Apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Dec 14, 2011 11:32:24 AM org.Apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Dec 14, 2011 11:32:24 AM org.Apache.coyote.http11.Http11AprProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Dec 14, 2011 11:32:24 AM org.Apache.coyote.ajp.AjpAprProtocol start
SEVERE: Error starting endpoint
Java.lang.Exception: Socket bind failed: [730048] Only one usage of each socket
address (protocol/network address/port) is normally permitted.
at org.Apache.Tomcat.util.net.AprEndpoint.init(AprEndpoint.Java:649)
at org.Apache.Tomcat.util.net.AprEndpoint.start(AprEndpoint.Java:766)
at org.Apache.coyote.ajp.AjpAprProtocol.start(AjpAprProtocol.Java:188)
at org.Apache.catalina.connector.Connector.start(Connector.Java:1122)
at org.Apache.catalina.core.StandardService.start(StandardService.Java:5
40)
at org.Apache.catalina.core.StandardServer.start(StandardServer.Java:754
)
at org.Apache.catalina.startup.Catalina.start(Catalina.Java:595)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
Java:39)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.Java:25)
at Java.lang.reflect.Method.invoke(Method.Java:597)
at org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:289)
at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:414)
Dec 14, 2011 11:32:24 AM org.Apache.catalina.core.StandardService start
SEVERE: Failed to start connector [Connector[AJP/1.3-8009]]
LifecycleException: service.getName(): "Catalina"; Protocol handler start fail
ed: Java.lang.Exception: Socket bind failed: [730048] Only one usage of each soc
ket address (protocol/network address/port) is normally permitted.
at org.Apache.catalina.connector.Connector.start(Connector.Java:1129)
at org.Apache.catalina.core.StandardService.start(StandardService.Java:5
40)
at org.Apache.catalina.core.StandardServer.start(StandardServer.Java:754
)
at org.Apache.catalina.startup.Catalina.start(Catalina.Java:595)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
Java:39)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.Java:25)
at Java.lang.reflect.Method.invoke(Method.Java:597)
at org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:289)
at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:414)
Dec 14, 2011 11:32:24 AM org.Apache.catalina.startup.Catalina start
INFO: Server startup in 3966 ms
Dec 14, 2011 11:33:25 AM org.Apache.coyote.http11.Http11AprProtocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8080
Dec 14, 2011 11:33:25 AM org.Apache.coyote.ajp.AjpAprProtocol pause
INFO: Pausing Coyote AJP/1.3 on ajp-8009
Dec 14, 2011 11:33:26 AM org.Apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
Dec 14, 2011 11:33:26 AM org.Apache.coyote.http11.Http11AprProtocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
Dec 14, 2011 11:33:26 AM org.Apache.coyote.ajp.AjpAprProtocol destroy
INFO: Stopping Coyote AJP/1.3 on ajp-8009
Terminate batch job (Y/N)? y
C:\Apache-Tomcat-6\bin>
どうすれば修正できますか?別のTomcatが実行されていません。localhost:8080で確認しました。前もって感謝します
確認する netstat -ntlp | grep :8009
8009をすでに使用しているプロセスを確認します。
最初にプロセスを終了します。次に、%Tomcat_HOME%/ conf/server.xmlファイルを確認します。 port = "8009"をport = "8010"に置き換える必要があります。
プロセスをps -ef | grep Tomcat
からkill -9
まで実行するか、Javaプロセスが実行中のプロセスを終了するために実行されている場合)からダブルチェックします。おそらく、以前のTomcat起動セッションが正常に終了していません。
Ubuntu/Linuxの場合
手順1:ポート8009を使用しているプロセスIDを見つける
netstat -lnp | grep 8009
or
ps -aef | grep Tomcat
ステップ2:上記の結果のプロセスIDを使用してプロセスを強制終了します
kill -9 process_id
Windowsの場合
ステップ1:プロセスIDを見つける
netstat -ano | findstr 8009
手順2:管理者としてコマンドプロンプトを開き、プロセスを終了する
taskkill /F /pid process_id_from_step_1
ポート番号の変更
2つのApache Tomcatを並行して実行したい場合は、Eclipseサーバーの概要で競合するポート番号を変更します。
Eclipse
を開く
Servers panel
に移動
設定されたサーバー名をダブルクリックしてOverview
ウィンドウを開きます
Ports
tabを開きます。次のものを取得します。
Tomcat adminport
HTTP/1.1
AJP/1.3
AJP/1.3
の競合するポート番号を変更(例:9009
)
Tomcat admin port
のポート(例:9005
)とHTTP/1.1
(例:9090
)のポートも変更する必要がある場合があります。
それを保存し(ctrl + s)、サーバーを起動します。
ポート8009はすでに使用されています。別のTomcatまたは別の何かにすることができます。
Tomcatプロセスは手動で強制終了する必要があります。
編集:Windowsプラットフォームを使用している場合、CTRL-ALT-Supprを使用してすべてのjavaw.exeプロセスを強制終了します