无法启动Tomcat 7服务器 - java.net.BindException:地址已在使用中

时间:2013-01-11 04:44:16

标签: eclipse tomcat7

嗨我无法从eclipse启动tomcat 7服务器。

当我从eclipse开始时,我得到以下错误日志。

Jan 11, 2013 10:10:27 AM 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\jre7\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:\Users\Jayant\Desktop\data\adt-bundle-windows-x86\eclipse;;.
Jan 11, 2013 10:10:28 AM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jan 11, 2013 10:10:28 AM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jan 11, 2013 10:10:28 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1165 ms
Jan 11, 2013 10:10:28 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jan 11, 2013 10:10:28 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.12
Jan 11, 2013 10:10:28 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jan 11, 2013 10:10:28 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jan 11, 2013 10:10:28 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 507 ms
Jan 11, 2013 10:10:28 AM org.apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: create[localhost:8005]: 
java.net.BindException: Address already in use: JVM_Bind
    at java.net.DualStackPlainSocketImpl.bind0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketBind(Unknown Source)
    at java.net.AbstractPlainSocketImpl.bind(Unknown Source)
    at java.net.PlainSocketImpl.bind(Unknown Source)
    at java.net.ServerSocket.bind(Unknown Source)
    at java.net.ServerSocket.<init>(Unknown Source)
    at org.apache.catalina.core.StandardServer.await(StandardServer.java:422)
    at org.apache.catalina.startup.Catalina.await(Catalina.java:707)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:653)
    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.start(Bootstrap.java:303)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431)

Jan 11, 2013 10:10:28 AM org.apache.coyote.AbstractProtocolHandler pause
INFO: Pausing ProtocolHandler ["http-bio-8080"]
Jan 11, 2013 10:10:29 AM org.apache.coyote.AbstractProtocolHandler pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
Jan 11, 2013 10:10:30 AM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
Jan 11, 2013 10:10:30 AM org.apache.coyote.AbstractProtocolHandler stop
INFO: Stopping ProtocolHandler ["http-bio-8080"]
Jan 11, 2013 10:10:30 AM org.apache.coyote.AbstractProtocolHandler stop
INFO: Stopping ProtocolHandler ["ajp-bio-8009"]

现在我收到以下错误。

Jan 11, 2013 10:18:59 AM 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\jre7\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:\Users\Jayant\Desktop\data\adt-bundle-windows-x86\eclipse;;.
Jan 11, 2013 10:19:00 AM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jan 11, 2013 10:19:00 AM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jan 11, 2013 10:19:00 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 872 ms
Jan 11, 2013 10:19:00 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jan 11, 2013 10:19:00 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.12
Jan 11, 2013 10:19:00 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jan 11, 2013 10:19:00 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jan 11, 2013 10:19:00 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 535 ms
Jan 11, 2013 10:20:13 AM org.apache.catalina.core.StandardServer await
WARNING: StandardServer.await: Invalid command 'GET / HTTP/1.1' received
Jan 11, 2013 10:20:19 AM org.apache.catalina.core.StandardServer await
WARNING: StandardServer.await: Invalid command '' received

9 个答案:

答案 0 :(得分:10)

管理端口用于接收管理命令,HTTP端口用于接收HTTP请求。您必须使用不同的端口。发生的事情是:HTTP连接器无法启动,因为服务器已经打开了该端口。您的浏览器/客户端/无论向管理端口发送了什么请求,服务器都不了解HTTP并记录此错误。

尝试将Tomcat重新安装到另一个端口。

答案 1 :(得分:4)

我遇到了这个问题(端口8005已经被使用),根本原因是由于我的机器上已经运行了一个现有的tomcat进程。所以,我需要做的就是杀死现有进程并再次启动tomcat。

答案 2 :(得分:1)

常见错误是在server.xml配置文件中使用相同的Shutdown和Connector端口。

这些端口应该不同,这是正确的示例:

<Server port="8005" shutdown="SHUTDOWN">
    <Connector port="8983" protocol="HTTP/1.1"

默认情况下,Tomcat在端口8005上侦听SHUTDOWN命令,它应该始终与连接器端口不同。

如果您的端口仍在使用中,请尝试sudo lsof -i:8005查找原因。

答案 3 :(得分:1)

如果使用的是Linux系统,请在终端上键入ps -ef | grep tomcat。然后找到进程ID(PID)。然后在终端上输入kill -9。现在,启动tomcat服务器。

答案 4 :(得分:1)

解决此问题的两种方法:

1>转到tomcat服务器安装目录并打开server.xml文件,检查

连接器和服务器端口不同。如果没有将它们设置为其他端口,然后检查这些端口上是否未运行

2>从开始打开命令提示符,然后键入netstat -ano | findstr 8010检查端口是否正在使用。如果使用它们,您将获得  TCP 0.0.0.0:8005 0.0.0.0:0侦听4   TCP [::]:8005 [::]:0侦听4

然后 a>使用任务管理器中的进程ID(在我的情况下为4)杀死该进程

如果未使用它们,则在cmd中看不到任何内容

答案 5 :(得分:1)

转到server.xml文件并更改

<Server port="8005" shutdown="SHUTDOWN">

<Server port="8006" shutdown="SHUTDOWN">

其中一则提到更改原因

答案 6 :(得分:1)

在Windows 10中,端口8005已被保留(用于某些操作)。在tomcat/conf/server.xml

中更改为例如8089(或任何可用端口)

答案 7 :(得分:0)

你可以做的就是杀死进程你可以转到tomcat目录/ conf / server.xml,在这里你可以将关闭端口(8005)更改为其他一些端口。同时将默认端口(8080)和其他端口更改为不同端口。因此,您可以在单个计算机上运行多个Tomcat实例。重新启动服务器(如果问题仍然存在)在Eclipse中重新创建它。

答案 8 :(得分:0)

使用:

sHolder

摆脱任何现有的tomcat进程。

启动tomcat。