JBoss 启动时出错:地址已在使用中

Posted

技术标签:

【中文标题】JBoss 启动时出错:地址已在使用中【英文标题】:Error when JBoss starts: address already in use 【发布时间】:2016-05-02 19:40:34 【问题描述】:

我想启动 JBoss 服务器时遇到问题。我正在使用 Netbeans,并使用 Server > Add Server > JBoss Application Server 添加了我的服务器。

我使用端口8181 配置了我的服务器,因为端口8080 已在使用中。但是当我启动它时,它失败了,因为它试图连接到端口8080

10:10:48,071 错误 [org.jboss.msc.service.fail](MSC 服务线程 1-5) MSC00001: 启动服务失败 jboss.web.connector.http: 服务中的 org.jboss.msc.service.StartException jboss.web.connector.http:JBAS018007:

在启动 Web 连接器时出错 org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:271) 在 org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 在 org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79] 在 java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79]

Caused by: LifecycleException: L'initialisation du gestionnaire de protocole a échoué: java.net.BindException: Address 已在使用:JVM_Bind /127.0.0.1:8080 在 org.apache.catalina.connector.Connector.init(Connector.java:985) 在 org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:267) ... 5 更多

我使用的是 JDK 1.7。我的环境变量配置良好:JAVA_HOME = path/to/jdk1.7。而在 Netbeans 中,在服务器的属性中,我的 Java 平台是 JDK 1.7。

这里是检查值的日志的开头:

调用“C:\Server\jboss-as-7.1.0.Final\bin\standalone.conf.bat” "JAVA_OPTS 已在环境中设置;覆盖默认设置

具有值:-Xms128m -Xmx512m -XX:MaxPermSize=256m"

JBoss 引导环境

JBOSS_HOME: C:\Server\jboss-as-7.1.0.Final

JAVA:C:\Program Files\Java\jdk1.7.0_79\bin\java

JAVA_OPTS: -XX:+TieredCompilation -Dprogram.name=standalone.bat -Xms128m -Xmx512m -XX:MaxPermSize=256m

提前感谢您的帮助!

【问题讨论】:

"我用 8181 端口配置了我的服务器" => 怎么样? 【参考方案1】:

在目录$JBOSS_HOME$/standalone/configuration 中检查您的standalone.xml 并检查元素

<socket-binding name="http" port="XXXX"/>

XXXX 是否等于81818080?我打赌它是8080。将其更改为8181 并重新启动JBoss。

【讨论】:

谢谢,我做到了。但我仍然有一个错误:地址已在使用中:绑定。你认为还有其他变量需要改变吗? 当我检查 netstat 时,没有使用端口 8181:/ 好吧,当我转到 localhost:8181 时,我没有任何错误。但是在日志中,我仍然有那些异常。当我做一个 netstat 时,使用了 8181 端口。所以我认为它正在工作。 碰巧JVM还有一个正在运行的实例。您是否尝试在启动 JBoss 之前杀死所有正在运行的 JVM 实例?您之前可能已经启动过 JBoss 实例(在另一个控制台中)。【参考方案2】:

如果您不确定哪个进程阻塞了您的端口(如果您将应用程序部署到未知服务器,这种情况时常发生)您真的想看看netstat.exe 工具(Windows 的一部分):

cmd -> "netstat -o"

这将向您显示每个正在使用的端口以及使用它的Pid(进程 ID)。使用此 ID,您可以在任务管理器中查看哪个进程正在阻止您的端口。

Netstat 还有一些其他方便的选项。

【讨论】:

谢谢,但我知道我的 Tomcat 已经使用了该端口。当我尝试从另一个端口开始时(如@TT.所说),端口 8181(我选择)不在“netstat”列表中。 @TT 感谢您的编辑...这全小写对德国人来说总是很痛苦 ;-)【参考方案3】:

检查你的standalone.xml: 并检查两个端口:<socket-binding-group name="standard-sockets" default-interface="public" port-offset="$jboss.socket.binding.port-offset:0"> & <socket-binding name="http" port="9090"/>

如果您已将 http 端口设置为 9090,则偏移量应为 0。

【讨论】:

【参考方案4】:

对我来说,我已将 intellij 文件 -> 设置 -> 调试器(内置服务器)端口更改为其他端口(8080 除外),如

所示

【讨论】:

以上是关于JBoss 启动时出错:地址已在使用中的主要内容,如果未能解决你的问题,请参考以下文章

启动 WildFly 服务器时出错(地址已在使用中)

启动用户态代理时出错:监听 tcp 0.0.0.0:3306:绑定:地址已在使用中

地址已在使用中:JVM_Bind java

WildFly 开始出现错误:java.net.BindException:地址已在使用中

启动 jboss 服务器时出错

在Windows 7 64位上启动JBoss 7.1.1时出错