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 tomcatkill -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/

Linux中复制tomcat

Tomcat v6.0 Server @ localhost 所需的几个端口(8080, 8009)已在使用中。服务器可能已在另一个进程中运行,或者某个系统进程可能正在使用该端口。

TOMCAT8009端口与AJP到底是什么?TOMCAT8009端口与AJP13协议

怎么修改tomcat端口

Tomcat 服务器在 localhost 所需的几个端口(8005、8080、8009)已在使用中