apache tomcat 8009 端口正在使用中
Posted
技术标签:
【中文标题】apache tomcat 8009 端口正在使用中【英文标题】:apache tomcat 8009 port in use 【发布时间】:2012-01-20 12:02:25 【问题描述】:当我在 Eclipse 上启动 tomcat 时,我收到了这条消息:
Tomcat v6.0 服务器在 localhost 所需的端口 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。提前致谢
【问题讨论】:
【参考方案1】:与netstat -ntlp | grep :8009
核对以查看已在使用 8009 的进程。
【讨论】:
'grep' 不是内部或外部命令、可运行程序或批处理文件。我用窗户。是在窗户里吗? @elbek 检查this 对不起,我没有注意到它是 Windows。我不知道什么是 grep equiv。在窗户上。我相信 netstat 的行为类似,但请尝试不使用| grep :8009
的命令
grep 不适用于 Windows,因此 OP 面临该错误,否则您是正确的 +1
大致相当于windows的内联搜索命令是| find ":8009"
【参考方案2】:
首先杀死进程。然后检查您的 %TOMCAT_HOME%/conf/server.xml 文件。您应该将 port="8009" 替换为 port="8010"。
【讨论】:
【参考方案3】:通过运行ps -ef | grep tomcat
到kill -9
来仔细检查进程,或者从您的任务管理器中检查是否有任何Java 进程正在运行以终止它。很可能您之前的 Tomcat 启动会话没有正常结束。
【讨论】:
【参考方案4】:适用于 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
更改端口号
如果您要并行运行两个 Apache Tomcat,然后在 Eclipse 服务器概览中更改冲突的端口号。
打开Eclipse
转到Servers panel
双击配置的服务器名称打开Overview
窗口
打开Ports
选项卡。您将获得以下信息:
Tomcat adminport
HTTP/1.1
AJP/1.3
更改AJP/1.3
的冲突端口号(例如更改为9009
)
您可能还需要更改Tomcat admin port
(例如,9005
)和HTTP/1.1
(例如,9090
)的端口。
保存 (ctrl+s) 并启动您的服务器。
【讨论】:
非常彻底的解决方案。谢谢。【参考方案5】:您的 8009 端口已被使用。它可以是另一个 tomcat 或不同的东西。 您应该手动终止任何 tomcat 进程。 编辑:假设您在 Windows 平台上,使用 CTRL-ALT-Suppr 杀死所有 javaw.exe 进程
【讨论】:
【参考方案6】:检查文件夹\apache-tomcat-6.0.32\conf
中的文件server.xml
会提到port address
,如果是8080
,请尝试将其更改为8081
并启动服务器并调用localhost:8081
在server.xml
中会如下所示:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
【讨论】:
端口号是8009不是8080,8080是免费的 像我的回答一样检查HTTP协议,通常在tomcat 8009中将用于AJP协议。 您甚至可以更改此端口并进行测试。如果服务器正在启动。 我更改为 8011,当我通过命令行启动时它与 loclahost:8080 一起使用,但我不适用于 eclipse以上是关于apache tomcat 8009 端口正在使用中的主要内容,如果未能解决你的问题,请参考以下文章
只有使用 mod_proxy 的端口是 8009。尝试使用 tomcat 和 httpd/
Tomcat v6.0 Server @ localhost 所需的几个端口(8080, 8009)已在使用中。服务器可能已在另一个进程中运行,或者某个系统进程可能正在使用该端口。