无法使用 Eclipse 启动 Tomcat:“地址已在使用中”

Posted

技术标签:

【中文标题】无法使用 Eclipse 启动 Tomcat:“地址已在使用中”【英文标题】:Can't start Tomcat with Eclipse: "Address already in use" 【发布时间】:2013-04-16 18:48:50 【问题描述】:

我无法启动我的 tomcat 服务器。我几乎尝试了一切。作为服务器位置,切换位置没有帮助。我在 Windows 8 上。

我在这里发布我的控制台错误:

org.apache.catalina.core.AprLifecycleListener 初始化 INFO:基于 APR 的 Apache Tomcat Native 库,可在 在 java.library.path 上找不到生产环境: C:\Program Files\Java\jdk1.7.0_21\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Users/Krzys/Desktop/eclipse-jee -juno-SR2-win32-x86_64/eclipse/jre/bin/server;C:/Users/Krzys/Desktop/eclipse-jee-juno-SR2-win32-x86_64/eclipse/jre/bin;C:/Users/Krzys /Desktop/eclipse-jee-juno-SR2-win32-x86_64/eclipse/jre/lib/amd64;;C:\Users\Krzys\Desktop\eclipse-jee-juno-SR2-win32-x86_64\eclipse;;. kwi 2013 年 3 月 23 日下午 3:53:21 org.apache.tomcat.util.digester.SetPropertiesRule 开始 警告:[SetPropertiesRule]Server/Service/Engine/Host/Context 设置 属性 'source' 到 'org.eclipse.jst.jee.server:Lab5' 没有找到匹配的属性。 kwi 2013 年 2 月 23 日下午 3:53:21 org.apache.coyote.AbstractProtocol 初始化 信息:初始化 ProtocolHandler ["http-bio-8080"] kwi 2013 年 2 月 23 日下午 3:53:21 org.apache.coyote.AbstractProtocol 初始化 严重:无法初始化与 ProtocolHandler [“http-bio-8080”] 关联的端点 java.net.BindException:地址已在使用中:JVM_Bind :8080 在 org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:406) 在 org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:610) 在 org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:429) 在 org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119) 在 org.apache.catalina.connector.Connector.initInternal(Connector.java:981) 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 在 org.apache.catalina.core.StandardService.initInternal(StandardService.java:559) 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 在 org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814) 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 在 org.apache.catalina.startup.Catalina.load(Catalina.java:633) 在 org.apache.catalina.startup.Catalina.load(Catalina.java:658) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:601) 在 org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 引起:java.net.BindException:地址已在使用:JVM_Bind 在 java.net.DualStackPlainSocketImpl.bind0(本机方法) 在 java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:96) 在 java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) 在 java.net.PlainSocketImpl.bind(PlainSocketImpl.java:175) 在 java.net.ServerSocket.bind(ServerSocket.java:376) 在 java.net.ServerSocket.(ServerSocket.java:237) 在 java.net.ServerSocket.(ServerSocket.java:181) 在 org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49) 在 org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:393) ... 17 更多 kwi 2013 年 2 月 23 日下午 3:53:21 org.apache.catalina.core.StandardService initInternal 严重:无法初始化连接器 [连接器 [HTTP/1.1-8080]] org.apache.catalina.LifecycleException:无法初始化组件 [连接器 [HTTP/1.1-8080]] 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106) 在 org.apache.catalina.core.StandardService.initInternal(StandardService.java:559) 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 在 org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814) 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 在 org.apache.catalina.startup.Catalina.load(Catalina.java:633) 在 org.apache.catalina.startup.Catalina.load(Catalina.java:658) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:601) 在 org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 引起:org.apache.catalina.LifecycleException:协议处理程序初始化失败 在 org.apache.catalina.connector.Connector.initInternal(Connector.java:983) 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) ... 12 更多 原因:java.net.BindException:地址已在使用:JVM_Bind :8080 在 org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:406) 在 org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:610) 在 org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:429) 在 org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119) 在 org.apache.catalina.connector.Connector.initInternal(Connector.java:981) ... 13 更多 引起:java.net.BindException:地址已在使用:JVM_Bind 在 java.net.DualStackPlainSocketImpl.bind0(本机方法) 在 java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:96) 在 java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) 在 java.net.PlainSocketImpl.bind(PlainSocketImpl.java:175) 在 java.net.ServerSocket.bind(ServerSocket.java:376) 在 java.net.ServerSocket.(ServerSocket.java:237) 在 java.net.ServerSocket.(ServerSocket.java:181) 在 org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49) 在 org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:393) ... 17 更多 kwi 2013 年 2 月 23 日下午 3:53:21 org.apache.coyote.AbstractProtocol 初始化 信息:初始化 ProtocolHandler ["ajp-bio-8009"] kwi 2013 年 2 月 23 日下午 3:53:21 org.apache.coyote.AbstractProtocol 初始化 严重:无法初始化与 ProtocolHandler [“ajp-bio-8009”] 关联的端点 java.net.BindException:地址已在使用中:JVM_Bind :8009 在 org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:406) 在 org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:610) 在 org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:429) 在 org.apache.catalina.connector.Connector.initInternal(Connector.java:981) 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 在 org.apache.catalina.core.StandardService.initInternal(StandardService.java:559) 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 在 org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814) 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 在 org.apache.catalina.startup.Catalina.load(Catalina.java:633) 在 org.apache.catalina.startup.Catalina.load(Catalina.java:658) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:601) 在 org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 引起:java.net.BindException:地址已在使用:JVM_Bind 在 java.net.DualStackPlainSocketImpl.bind0(本机方法) 在 java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:96) 在 java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) 在 java.net.PlainSocketImpl.bind(PlainSocketImpl.java:175) 在 java.net.ServerSocket.bind(ServerSocket.java:376) 在 java.net.ServerSocket.(ServerSocket.java:237) 在 java.net.ServerSocket.(ServerSocket.java:181) 在 org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49) 在 org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:393) ... 16 更多 kwi 2013 年 2 月 23 日下午 3:53:21 org.apache.catalina.core.StandardService initInternal 严重:无法初始化连接器 [连接器 [AJP/1.3-8009]] org.apache.catalina.LifecycleException:无法初始化组件 [连接器 [AJP/1.3-8009]] 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106) 在 org.apache.catalina.core.StandardService.initInternal(StandardService.java:559) 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 在 org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814) 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 在 org.apache.catalina.startup.Catalina.load(Catalina.java:633) 在 org.apache.catalina.startup.Catalina.load(Catalina.java:658) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:601) 在 org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 引起:org.apache.catalina.LifecycleException:协议处理程序初始化失败 在 org.apache.catalina.connector.Connector.initInternal(Connector.java:983) 在 org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) ... 12 更多 原因:java.net.BindException:地址已在使用:JVM_Bind :8009 在 org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:406) 在 org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:610) 在 org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:429) 在 org.apache.catalina.connector.Connector.initInternal(Connector.java:981) ... 13 更多 引起:java.net.BindException:地址已在使用:JVM_Bind 在 java.net.DualStackPlainSocketImpl.bind0(本机方法) 在 java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:96) 在 java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) 在 java.net.PlainSocketImpl.bind(PlainSocketImpl.java:175) 在 java.net.ServerSocket.bind(ServerSocket.java:376) 在 java.net.ServerSocket.(ServerSocket.java:237) 在 java.net.ServerSocket.(ServerSocket.java:181) 在 org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49) 在 org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:393) ... 16 更多 kwi 2013 年 2 月 23 日下午 3:53:21 org.apache.catalina.startup.Catalina 加载 INFO:初始化在 1271 毫秒内处理 kwi 2013 年 2 月 23 日下午 3:53:21 org.apache.catalina.core.StandardService startInternal 信息:启动服务 Catalina kwi 2013 年 3 月 53 日下午 3:53:21 org.apache.catalina.core.StandardEngine startInternal 信息:启动 Servlet 引擎:Apache Tomcat/7.0.39 kwi 2013 年 2 月 23 日下午 3:53:23 org.apache.catalina.startup.HostConfig deployDirectory 信息:部署 Web 应用程序目录 C:\Users\Krzys\Desktop\eclipse-jee-juno-SR2-win32-x86_64\eclipse\apache-tomcat-7.0.39\webapps\docs kwi 2013 年 2 月 23 日下午 3:53:23 org.apache.catalina.startup.HostConfig deployDirectory 信息:部署 Web 应用程序目录 C:\Users\Krzys\Desktop\eclipse-jee-juno-SR2-win32-x86_64\eclipse\apache-tomcat-7.0.39\webapps\examples kwi 2013 年 2 月 23 日下午 3:53:24 org.apache.catalina.core.ApplicationContext 日志 信息:上下文侦听器:上下文初始化() kwi 2013 年 2 月 23 日下午 3:53:24 org.apache.catalina.core.ApplicationContext 日志 信息:SessionListener:contextInitialized() kwi 2013 年 2 月 23 日下午 3:53:24 org.apache.catalina.core.ApplicationContext 日志 信息:ContextListener:attributeAdded('org.apache.jasper.compiler.TldLocationsCache','org.apache.jasper.compiler.TldLocationsCache@737d54dd') kwi 2013 年 2 月 23 日下午 3:53:24 org.apache.catalina.startup.HostConfig deployDirectory 信息:部署 Web 应用程序目录 C:\Users\Krzys\Desktop\eclipse-jee-juno-SR2-win32-x86_64\eclipse\apache-tomcat-7.0.39\webapps\host-manager kwi 2013 年 2 月 23 日下午 3:53:24 org.apache.catalina.startup.HostConfig deployDirectory 信息:部署 Web 应用程序目录 C:\Users\Krzys\Desktop\eclipse-jee-juno-SR2-win32-x86_64\eclipse\apache-tomcat-7.0.39\webapps\manager kwi 2013 年 2 月 23 日下午 3:53:24 org.apache.catalina.startup.HostConfig deployDirectory 信息:部署 Web 应用程序目录 C:\Users\Krzys\Desktop\eclipse-jee-juno-SR2-win32-x86_64\eclipse\apache-tomcat-7.0.39\webapps\ROOT 2013 年 2 月 23 日下午 3:53:24 org.apache.catalina.startup.Catalina 开始 信息:服务器启动时间为 3028 毫秒 kwi 23, 2013 3:53:24 PM org.apache.catalina.core.StandardServer 等待 严重:StandardServer.await:创建 [localhost:8080]: java.net.BindException:地址已在使用中:JVM_Bind 在 java.net.DualStackPlainSocketImpl.bind0(本机方法) 在 java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:96) 在 java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) 在 java.net.PlainSocketImpl.bind(PlainSocketImpl.java:175) 在 java.net.ServerSocket.bind(ServerSocket.java:376) 在 java.net.ServerSocket.(ServerSocket.java:237) 在 org.apache.catalina.core.StandardServer.await(StandardServer.java:427) 在 org.apache.catalina.startup.Catalina.await(Catalina.java:766) 在 org.apache.catalina.startup.Catalina.start(Catalina.java:712) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:601) 在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456) kwi 2013 年 2 月 23 日下午 3:53:24 org.apache.coyote.AbstractProtocol 暂停 信息:暂停 ProtocolHandler ["http-bio-8080"] kwi 2013 年 2 月 23 日下午 3:53:24 org.apache.coyote.AbstractProtocol 暂停 信息:暂停协议处理程序 [“ajp-bio-8009”] kwi 2013 年 2 月 23 日下午 3:53:24 org.apache.catalina.core.StandardService stopInternal 信息:停止服务 Catalina kwi 2013 年 2 月 23 日下午 3:53:24 org.apache.catalina.core.ApplicationContext 日志 信息:SessionListener:contextDestroyed() kwi 2013 年 2 月 23 日下午 3:53:24 org.apache.catalina.core.ApplicationContext 日志 信息:ContextListener:contextDestroyed() kwi 2013 年 2 月 23 日下午 3:53:24 org.apache.coyote.AbstractProtocol 停止 信息:停止 ProtocolHandler ["http-bio-8080"] kwi 2013 年 3 月 23 日下午 3:53:24 org.apache.coyote.AbstractProtocol 销毁 信息:销毁 ProtocolHandler ["http-bio-8080"] kwi 2013 年 2 月 23 日下午 3:53:24 org.apache.coyote.AbstractProtocol 停止 信息:停止 ProtocolHandler ["ajp-bio-8009"] kwi 2013 年 3 月 23 日下午 3:53:24 org.apache.coyote.AbstractProtocol 销毁 信息:销毁 ProtocolHandler ["ajp-bio-8009"]

在 Tomcat 停止后,我在控制台中收到此错误:

kwi 2013 年 4 月 23 日下午 4:27:38 org.apache.catalina.startup.Catalina stopServer 严重:Catalina.stop: java.net.ConnectException:连接:本地计算机上的地址无效,或者远程计算机上的端口无效 在 java.net.DualStackPlainSocketImpl.connect0(本机方法) 在 java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69) 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 在 java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) 在 java.net.Socket.connect(Socket.java:579) 在 java.net.Socket.connect(Socket.java:528) 在 java.net.Socket.(Socket.java:425) 在 java.net.Socket.(Socket.java:208) 在 org.apache.catalina.startup.Catalina.stopServer(Catalina.java:499) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:601) 在 org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:371) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:458)

【问题讨论】:

您在 stoppint Tomcat 时看到的其他错误之前已得到回答 - 请参阅 ***.com/questions/15105357/… Several ports (8005, 8080, 8009) required by Tomcat Server at localhost are already in use的可能重复 【参考方案1】:

默认情况下,Tomcat 配置为在端口8080 上启动,但您已经绑定了一些东西到该端口。它很可能是 Tomcat Web 服务器的另一个实例。

日志中的Address already in use: JVM_Bind :8080 表示您的机器已经有一个服务正在监听端口8080。使用netstat(命令行工具)或TCP View(图形工具)找到它,将其关闭,然后重新启动Tomcat。它应该可以克服那个错误。

或者,通过双击 Servers 选项卡中的 Tomcat vx.x Server at localhost 行并更改 all 显示在窗口的右侧看起来不同。

【讨论】:

好的。开始。我将一个简单的“Hello world”示例复制到 Eclipse 中。但它仍然显示“HTTP 状态 404”。我从昨天开始就在和它战斗。我确定我的代码很好,因为我在学校开始使用它并且它可以工作。 检查 Eclipse 中Modules 页面中的路径(双击“服务器”选项卡中的Tomcat vx.x Server at localhost 行,看到主窗口上还有另一个“页面”)。 Eclipse 习惯将 Web 应用程序映射到上下文名称,例如 http://localhost:8080/helloworld/,而您可能希望将其映射到 /,而不是在 Eclipse 中允许您键入 http://localhost:8080/ it still don't work 不是很有用。 究竟是什么不工作? 实际上,这个问题得到了回答,因为 Tomcat 现在在 Eclipse 下启动。这个最新的问题可能只是Tomcat的错误配置。我建议提出一个新问题,包括特定代码和到目前为止所有内容的详细信息,包括 Tomcat 日志和指向您尝试遵循的任何教程的链接。 @user2071550 常见问题是当 Tomcat 配置为绑定端口 8080(这是默认配置)时运行 Skype。快速修复:如果您正在运行Skype,请停止它,启动tomcat,然后再次启动Skype。长期修复:重新配置展位 tomcat 和 skype。【参考方案2】:

只需更改所有端口,例如:Tomcat 管理端口、Http/1.1 和 Ajp/1.3

示例 Tomcat 管理端口:8005 更改为 8004, http/1.1 :8080 改为 8081, ajp/1.3 :8009 改为 8008。

【讨论】:

【参考方案3】:

我遇到了同样的问题,我在重启电脑后解决了这个问题。希望对您有所帮助。

【讨论】:

【参考方案4】:

它表示端口号 8009 已被操作系统上运行的其他进程占用。

如果需要在 8009 上运行的服务,您可以将 server.xml 中的连接器配置更改为如下所示:

连接器端口="8089" 协议="AJP/1.3" redirectPort="8443"

【讨论】:

【参考方案5】:

如果您确定使用该端口的实例是另一个 tomcat 并且您无法将其关闭。强制关闭 java 运行时可能会有所帮助。

【讨论】:

【参考方案6】:

只是..

开始> 搜索“服务”你会看到tomcat服务正在运行停止它。

现在重新运行您的项目,希望您不会遇到任何困难

【讨论】:

以上是关于无法使用 Eclipse 启动 Tomcat:“地址已在使用中”的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat 无法启动使用 Eclipse、JRebel 和 Spring Boot

eclipse启动tomcat无法访问

eclipse启动tomcat无法访问

eclipse sts 无法启动 tomcat:端口已在使用中

Eclipse出现Tomcat无法启动

eclipse启动tomcat无法访问