JBoss服务器启动时,端口被占用的若干解决方法。

来源:互联网 发布:定宽买高窗帘算法 编辑:程序博客网 时间:2024/05/22 11:37

我们在启动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"(端口号)”

(注:如果提示 “ netstat 不是内部或外部命令” 可临时进入 c:\windows\system32\文件夹下执行)

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  -->

  <attribute name="RmiPort">1098</attribute>

原因是,JNDI的RmiPort需要使用1098端口,这样可以找一空闲端口,替换,保存即可。

找空闲端口的方法,测试一个端口是否被占用,用上面的两条命令,如果没出任何结果,则大致表示端口可用。 

 


 

注:如果提示 “ netstat 不是内部或外部命令” 可临时进入 c:\system32\文件夹下执行