WildFly 开始出现错误:java.net.BindException:地址已在使用中
Posted
技术标签:
【中文标题】WildFly 开始出现错误:java.net.BindException:地址已在使用中【英文标题】:WildFly started with errors: java.net.BindException: Address already in use 【发布时间】:2015-11-08 04:14:15 【问题描述】:当我在 Eclipse 中启动 WildFly 时,出现以下错误:
22:03:42,430 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.serverManagement.controller.management.http: org.jboss.msc.service.StartException in service jboss.serverManagement.controller.management.http: WFLYSRV0083: Failed to start the http-interface service
at org.jboss.as.server.mgmt.UndertowHttpManagementService.start(UndertowHttpManagementService.java:269)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: java.net.BindException: Address already in use: bind
at org.jboss.as.domain.http.server.ManagementHttpServer.start(ManagementHttpServer.java:160)
at org.jboss.as.server.mgmt.UndertowHttpManagementService.start(UndertowHttpManagementService.java:235)
... 5 more
Caused by: java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:437)
at sun.nio.ch.Net.bind(Net.java:429)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)
at org.xnio.nio.NioXnioWorker.createTcpConnectionServer(NioXnioWorker.java:182)
at org.xnio.XnioWorker.createStreamConnectionServer(XnioWorker.java:243)
at org.jboss.as.domain.http.server.ManagementHttpServer.start(ManagementHttpServer.java:147)
... 6 more
22:03:42,431 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) WFLYJCA0001: Bound data source [java:jboss/datasources/ExampleDS]
22:03:42,551 INFO [org.jboss.ws.common.management] (MSC service thread 1-7) JBWS022052: Starting JBoss Web Services - Stack CXF Server 5.0.0.Final
22:03:43,287 INFO [javax.enterprise.resource.webcontainer.jsf.config] (ServerService Thread Pool -- 61) Mojarra 2.2.11-jbossorg-1 20150505-1501 für Kontext '/JSF Hello World' wird initialisiert.
22:03:43,721 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 61) WFLYUT0021: Registered web context: /JSF Hello World
22:03:43,727 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("core-service" => "management"),
("management-interface" => "http-interface")
]) - failure description: "WFLYCTL0080: Failed services" => "jboss.serverManagement.controller.management.http" => "org.jboss.msc.service.StartException in service jboss.serverManagement.controller.management.http: WFLYSRV0083: Failed to start the http-interface service
Caused by: java.lang.RuntimeException: java.net.BindException: Address already in use: bind
Caused by: java.net.BindException: Address already in use: bind"
22:03:43,758 INFO [org.jboss.as.server] (ServerService Thread Pool -- 34) WFLYSRV0010: Deployed "JSF Hello World.war" (runtime-name : "JSF Hello World.war")
22:03:43,786 INFO [org.jboss.as.controller] (Controller Boot Thread) WFLYCTL0183: Service status report
WFLYCTL0186: Services which failed to start: service jboss.serverManagement.controller.management.http: org.jboss.msc.service.StartException in service jboss.serverManagement.controller.management.http: WFLYSRV0083: Failed to start the http-interface service
22:03:43,884 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0063: Http management interface is not enabled
22:03:43,884 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0054: Admin console is not enabled
22:03:43,884 ERROR [org.jboss.as] (Controller Boot Thread) WFLYSRV0026: WildFly Full 9.0.1.Final (WildFly Core 1.0.1.Final) started (with errors) in 12675ms - Started 270 of 455 services (2 services failed or missing dependencies, 221 services are lazy, passive or on-demand)
我该如何解决这个问题?
端口 80 上有一些连接。我是否必须使用 whois 检查所有 IP 地址才能识别我计算机上已经使用端口 80 的应用程序?
C:\Users\me7D-User>netstat -aon | findstr "80"
TCP 0.0.0.0:8092 0.0.0.0:0 ABHÖREN 4
TCP 127.0.0.1:8080 0.0.0.0:0 ABHÖREN 8868
TCP 127.0.0.1:8080 127.0.0.1:59241 HERGESTELLT 8868
TCP 127.0.0.1:59177 127.0.0.1:8080 WARTEND 0
TCP 127.0.0.1:59180 127.0.0.1:59181 HERGESTELLT 8868
TCP 127.0.0.1:59181 127.0.0.1:59180 HERGESTELLT 8868
TCP 127.0.0.1:59230 127.0.0.1:8080 WARTEND 0
TCP 127.0.0.1:59241 127.0.0.1:8080 HERGESTELLT 11024
TCP 192.168.0.100:59166 173.194.113.41:80 WARTEND 0
TCP 192.168.0.100:59249 104.16.102.85:80 HERGESTELLT 8392
TCP 192.168.0.100:59250 216.58.211.42:80 HERGESTELLT 8392
TCP 192.168.0.100:59252 103.31.7.34:80 HERGESTELLT 8392
TCP 192.168.0.100:59253 216.58.211.42:80 WARTEND 0
TCP 192.168.0.100:59254 190.93.247.58:80 HERGESTELLT 8392
TCP 192.168.0.100:59255 190.93.247.58:80 HERGESTELLT 8392
TCP 192.168.0.100:59256 190.93.247.58:80 WARTEND 0
TCP 192.168.0.100:59257 190.93.247.58:80 HERGESTELLT 8392
TCP 192.168.0.100:59258 190.93.247.58:80 HERGESTELLT 8392
TCP 192.168.0.100:59259 190.93.247.58:80 HERGESTELLT 8392
TCP 192.168.0.100:59264 104.16.12.8:80 HERGESTELLT 8392
TCP 192.168.0.100:59265 88.221.92.32:80 HERGESTELLT 8392
TCP 192.168.0.100:59266 88.221.92.176:80 HERGESTELLT 8392
TCP 192.168.0.100:59267 173.194.113.36:80 HERGESTELLT 8392
TCP 192.168.0.100:59268 104.16.12.8:80 WARTEND 0
TCP 192.168.0.100:59269 88.221.92.32:80 WARTEND 0
TCP 192.168.0.100:59270 88.221.92.176:80 WARTEND 0
TCP 192.168.0.100:59271 54.204.10.55:80 HERGESTELLT 8392
TCP 192.168.0.100:59272 54.204.10.55:80 WARTEND 0
TCP 192.168.0.100:59273 95.172.94.34:80 WARTEND 0
TCP 192.168.0.100:63749 216.34.181.97:80 SCHLIESSEN_WARTEN 1680
TCP 192.168.0.100:63812 216.34.181.97:80 SCHLIESSEN_WARTEN 1680
TCP [::]:8092 [::]:0 ABHÖREN 4
UDP 127.0.0.1:49880 *:* 3272
UDP [fe80::100:7f:fffe%11]:54045 *:* 49
56
UDP [fe80::5efe:192.168.0.100%15]:54045 *:*
4956
UDP [fe80::5efe:192.168.137.1%14]:54045 *:*
4956
UDP [fe80::a9:d477:68a9:2472%10]:1900 *:*
3364
UDP [fe80::a9:d477:68a9:2472%10]:54045 *:*
4956
UDP [fe80::a9:d477:68a9:2472%10]:56718 *:*
3364
UDP [fe80::3d9d:1f6f:e25:35b%13]:53 *:*
1292
UDP [fe80::3d9d:1f6f:e25:35b%13]:546 *:*
1100
UDP [fe80::3d9d:1f6f:e25:35b%13]:1900 *:*
3364
UDP [fe80::3d9d:1f6f:e25:35b%13]:54045 *:*
4956
UDP [fe80::3d9d:1f6f:e25:35b%13]:56719 *:*
3364
这些都在端口 8080 上。
C:\Users\me7D-User>netstat -aon | findstr "8080"
TCP 127.0.0.1:8080 0.0.0.0:0 ABHÖREN 7500
TCP 127.0.0.1:8080 127.0.0.1:60095 HERGESTELLT 7500
TCP 127.0.0.1:8080 127.0.0.1:60096 HERGESTELLT 7500
TCP 127.0.0.1:60035 127.0.0.1:8080 WARTEND 0
TCP 127.0.0.1:60095 127.0.0.1:8080 HERGESTELLT 11024
TCP 127.0.0.1:60096 127.0.0.1:8080 HERGESTELLT 11024
此错误始终存在,如果我重新启动计算机也是如此。
【问题讨论】:
访问 localhost:8080 说:“您的 WildFly 9 正在运行。” 那么,你有两个?或者,您也手动将 WildFly 安装为 Windows 服务? 没有。我刚刚在 Windows 上的 Eclipse 中添加了 WildFly 作为服务器。我之前把rar文件解压成C:。 【参考方案1】:检查您的计算机上是否运行了名为 NVIDIA 网络服务 的服务。
巧合的是,这个 NVIDIA 服务 在 9990 端口 上运行,用于 Wildfly 的管理控制台。
就我而言,它只是停止此服务并重新启动 Wildfly 服务器。
【讨论】:
这行得通,我有窗口 10 NVIDIA 950M 作为显卡。 localhost:9990/console/App.htm 我想知道 NVidia 如何决定这样的端口。这是最常用的端口,特别是如果您是开发人员(如我)。我想重新分配...也许有一个 nvidia 服务的配置.... 嗨,马克,好问题,我不知道为什么要使用如此常用的端口!所以,是的,我愿意...我和您一样也是开发人员,但是...实际上我没有调查 NVIDIA 的任何配置(文件)来检查是否可以修改此端口。【参考方案2】:WildFly 正在尝试使用您 PC 中已在使用的端口。检查您的日志:“Caused by: java.net.BindException: Address already in use: bind”
检查 WildFly 正在使用的端口,然后您可以检查此端口是否正在用于任何其他应用程序,它可能是 WildFly 的另一个实例,但也可以是任何其他应用程序。例如,端口 80 可以是 apache/IIS 或在您的 PC 中运行的任何其他 Web 服务器。
WildFly(和 JBOSS)通常默认使用 8080 并且看起来您有一个应用程序在此端口进行侦听,WildFly 也为应用程序服务器需要的其他协议和管理使用更多端口。使用命令 netstat 您可以检查其他应用程序正在使用这些端口,例如(对于 8080 端口)您可以使用以下命令:
netstat -aon | findstr :8080
如果你想做一个快速测试,你可以将此参数传递给 WildFly “-Djboss.socket.binding.port-offset=2000” 这将增加 JBOSS/WildFly 使用的所有端口2000(或任何其他值),例如,如果您的 WildFly 在“localhost:8080/your-context”中运行,现在将是“localhost:10080/your-context >”。
如果您的 JBOSS/WildFly 在端口 80 中运行,您也可以使用此参数来测试另一个端口,例如“-Djboss.socket.binding.port-offset= 10000”也会给你带来10080端口。
祝你好运;)
【讨论】:
在我从 Eclipse 开始 wildfly 之前没有任何连接。然后我可以看到三个连接。当我停止 wildfly 时,其中两个离开了。【参考方案3】:此端口已被 NVIDIA 或其他进程使用。解决此问题的另一种方法是更改默认管理端口。
要更改端口,您必须修改位于standalone\configuration
文件夹中的standalone.xml。找到端口9990
。现在将偏移量从 0 更改为 1 jboss.socket.binding.port-offset:1
它将默认端口值从9990
增加到9991
【讨论】:
【参考方案4】:当您尝试启动 Wildfly 时,它已经在运行。检查您的进程查看器,它可能显示为 wildfly,也可能显示为“java”。
您可以将它作为服务运行,也可以从命令行运行它,Eclipse 可能已启动它但不再意识到它。
【讨论】:
如果我启动 Eclipse,JBoss 正在运行。【参考方案5】:只需通过 http://localhost:8080 在浏览器中检查我的(默认)端口,很明显这是我安装/测试的名为 Intrexx 的服务/应用程序(顺便说一句。使用 Tomcat 应用程序服务器)。 卸载后一切正常。
【讨论】:
以上是关于WildFly 开始出现错误:java.net.BindException:地址已在使用中的主要内容,如果未能解决你的问题,请参考以下文章