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

Error when JBoss starts: address already in use

我想启动 JBoss 服务器时遇到问题。我在 Netbeans 上工作,我用 Server > Add Server > JBoss Application Server.

添加了我的服务器

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

10:10:48,071 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed to start service jboss.web.connector.http: org.jboss.msc.service.StartException in service jboss.web.connector.http: JBAS018007:

Error starting web connector at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:271) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79] at 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 already in use: JVM_Bind /127.0.0.1:8080 at org.apache.catalina.connector.Connector.init(Connector.java:985) at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:267) ... 5 more

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

这是检查值的日志开头:

Calling "C:\Server\jboss-as-7.1.0.Final\bin\standalone.conf.bat" "JAVA_OPTS already set in environment; overriding default settings

with values: -Xms128m -Xmx512m -XX:MaxPermSize=256m"

JBoss Bootstrap Environment

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

在此先感谢您的帮助!

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

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

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

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

cmd -> "netstat -o"

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

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

检查你的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。

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

中所示