当我想启动 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]
由以下原因引起:LifecycleException:L'initialization du 协议管理: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。
这是检查值的日志的开头:
在\standalone.conf.bat中调用“C:\Server\jboss-as-7.1.0.Final” “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 in\java
JAVA_OPTS:-XX:+分层编译-Dprogram.name=standalone.bat -Xms128m -Xmx512m -XX:MaxPermSize=256m
预先感谢您的帮助!
检查目录
standalone.xml
中的 $JBOSS_HOME$/standalone/configuration
并检查元素
<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 除外),如
所示在命令提示符下运行此命令以检查是否有任务正在运行:
netstat -ano | findstr {your_port}
如果有,您将能够看到任务ID,然后运行以下命令删除正在运行的任务:
taskkill /F /pid {task_id}
如果您没有看到任何输出,则意味着没有任何内容正在运行,并且它应该可以工作。
希望这有帮助。