JBoss服务器启动时,端口被占用的若干解决方法
我们在启动JBoss时,经常会遇到的问题就是端口被占用。
往往会出现以下信息:
java.rmi.server.ExportException: Port already in use: 1098; nested exception is: java.net.BindException: Address already in use: JVM_Bind
(
注:有时候错误信息太多,Eclipse的控制台会把前面的信息抹掉,
查看方法:找到以下路径:
Jboss_Home\server\default\log\server.log.
查看最近一次启动的系统信息。
)
上面的原因是“1098”端口被占用,类似的端口还有很多。
原因查找:
1、先查找端口被谁占用:
打开“命令提示符”-运行“netstat -nao|findstr "1098"(端口号)”
2、查看结果 会输出这样的信息
TCP 127.0.0.1:1097 127.0.0.1:1098 ESTABLISHED 1752
TCP 127.0.0.1:1098 127.0.0.1:1097 ESTABLISHED 1752
看最后一列的进程ID 为1752
3、再运行 tasklist |findstr "1752"
输出:
sametime.exe 1752 Console 0 158,988 K
发现是SameTime占用了1752端口。问题根源找到。
解决方法1:
因为有些软件的端口占用是随机的,所以可以尝试先停掉相关程序,比如关掉SameTime。再启动Jboss,正常启动后,再启动Sametime。
如果上面方法不可行,那么再用方法2
解决方法2:修改1098端口在Jboss下的应用。(慎用!)
先找到端口配置文件:JBOSS_HOME\server\default\conf\jboss-service.xml
打开 搜索“1098”
发现 以下内容
<!-- The port of the RMI naming service, 0 == anonymous -->
原因是,JNDI的RmiPort需要使用1098端口,这样可以找一空闲端口,替换,保存即可。
找空闲端口的方法,测试一个端口是否被占用,用上面的两条命令,如果没出任何结果,则大致表示端口可用。