2009-06-19 58 views
9

我收到以下錯誤,當我嘗試啓動JBoss的JBoss - ExportException:端口已在使用中:1098

10:10:43,298 INFO [WebService] Using RMI server codebase: http://127.0.0.1:8083/ 
10:10:43,938 ERROR [AbstractKernelController] Error installing to Start: name=jboss:service=Naming state=Create mode=Manual requiredState=Installed 
java.rmi.server.ExportException: Port already in use: 1098; nested exception is: 
    java.net.BindException: Address already in use: JVM_Bind 
    at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:249) 
    at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:184) 
    at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:382) 
    at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:116) 
    at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:180) 
    at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:293) 
    at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:256) 

但是當我嘗試看看哪些端口正在聆聽。我沒有看到那個端口!

H:\>netstat -a -n -o 

Active Connections 

    Proto Local Address   Foreign Address  State   PID 
    TCP 0.0.0.0:135   0.0.0.0:0    LISTENING  824 
    TCP 0.0.0.0:445   0.0.0.0:0    LISTENING  4 
    TCP 0.0.0.0:1521   0.0.0.0:0    LISTENING  2036 
    TCP 0.0.0.0:3389   0.0.0.0:0    LISTENING  752 
    TCP 0.0.0.0:7717   0.0.0.0:0    LISTENING  2944 
    TCP 0.0.0.0:8081   0.0.0.0:0    LISTENING  1564 
    TCP 0.0.0.0:31038   0.0.0.0:0    LISTENING  1436 
    TCP 127.0.0.1:1038   0.0.0.0:0    LISTENING  2036 
    TCP 127.0.0.1:1052   0.0.0.0:0    LISTENING  2620 
    TCP 127.0.0.1:5998   127.0.0.1:5999   ESTABLISHED  4036 
    TCP 127.0.0.1:5999   127.0.0.1:5998   ESTABLISHED  4036 
    TCP 127.0.0.1:6000   127.0.0.1:6001   ESTABLISHED  4036 
    TCP 127.0.0.1:6001   127.0.0.1:6000   ESTABLISHED  4036 
    TCP 142.174.27.74:139  0.0.0.0:0    LISTENING  4 
    TCP 142.174.27.74:13148 142.174.12.84:445  ESTABLISHED  4 
    TCP 142.174.27.74:13253 142.174.134.33:8080 ESTABLISHED  4036 
    TCP 142.174.27.74:13255 142.174.134.33:8080 ESTABLISHED  4036 
    TCP 142.174.27.74:13258 142.174.134.33:8080 ESTABLISHED  4036 
    TCP 142.174.27.74:13259 142.174.134.33:8080 ESTABLISHED  4036 
    TCP 142.174.27.74:13260 142.174.134.33:8080 ESTABLISHED  4036 
    TCP 142.174.27.74:13261 142.174.134.33:8080 ESTABLISHED  4036 
    TCP 142.174.27.74:13262 142.174.134.33:8080 ESTABLISHED  4036 
    TCP 142.174.27.74:13263 142.174.134.33:8080 ESTABLISHED  4036 
    UDP 0.0.0.0:445   *:*         4 
    UDP 0.0.0.0:8081   *:*         1564 
    UDP 0.0.0.0:8082   *:*         1564 
    UDP 0.0.0.0:19508   *:*         1244 
    UDP 127.0.0.1:123   *:*         948 
    UDP 127.0.0.1:1025   *:*         580 
    UDP 127.0.0.1:1046   *:*         524 
    UDP 127.0.0.1:1056   *:*         784 
    UDP 127.0.0.1:1213   *:*         2888 
    UDP 127.0.0.1:1257   *:*         2404 
    UDP 127.0.0.1:2172   *:*         3736 
    UDP 127.0.0.1:2310   *:*         2188 
    UDP 142.174.27.74:123  *:*         948 
    UDP 142.174.27.74:137  *:*         4 
    UDP 142.174.27.74:138  *:*         4 

H:\> 

有什麼想法?

感謝,

+0

任何防火牆(ISA)客戶端運行?或者一些國際空間站服務。你還嘗試使用TCPView – jitter 2009-06-19 19:36:26

+0

最後一次JBoss關機是否乾淨?你使用哪個窗口? 2008年之前的Windows有時可以預留1025-5000之間的端口供他自己使用http://support.microsoft.com/kb/929851/en-us – jitter 2009-06-19 19:41:07

回答

6

嘗試使用TCPView(TCPView v3.05)。我得到這個「已經在使用的端口」相當多,並且TCPView 總是 通常捕捉罪魁禍首。

+0

有用的,但也看到這個更快的解決方案:http://stackoverflow.com/a/6438810/396747 – 2012-01-20 12:27:47

2

我們前段時間就遇到了這個問題,以及,不只是與JBoss,而且MySQL的。 我更詳細地寫在這裏:

Windows TCP Port Conflicts above 1024

什麼它歸結爲是,Windows使用所謂的「短命」的端口1000和5000之間的端口範圍。這意味着它爲這個範圍中的端口分配請求一個隨機端口的進程。

在Windows 2000/2003服務器安裝以及Windows XP Pro上,您可以爲您的應用程序保留端口範圍(即使它們僅涵蓋單個端口)。有效地,它們不被保留用於特定的任何事物,而只是從動態分配中排除。爲此,創建或編輯以下注冊表值(類型REG_MULTI_SZ/Multi-String Value):

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ReservedPorts 

在此值指定端口範圍格式XXXX-YYYY與XXXX和YYYY是所述範圍的最低和最高的端口是保留。爲了保留單個端口,對兩者使用相同的值(例如1099)。

+0

任何想法如何在Windows7中實現相同的結果? – leokom 2016-11-01 08:23:17

2

我猜那個端口仍在使用中。你可以發現,使用:

netstat -ao 

netstat -b 

如果你不能使用該端口,找到另一個端口,並改變它下面的XML文件中:

conf/bindings-beans/META-INF/bindings-jboss-beans.xml 

的JBoss 5有一個新的ServiceBindingManager,它使用bean注入來在運行時分配端口。改變這裏的港口可能會爲你帶來訣竅。 您也可以使用不同的端口配置並按一個因子覆蓋端口。

2

基於山姆引用的文件中提到的端口,由Daniel Schneller引用的註冊表項,下面應的JBoss EAP 5做的伎倆:

一零九零年至1090年1098至1102年1161-1162 3528 -3528 4444-4448 4457-4457 4712-4714 5445-5446 8080-8083 8443-8443

在.reg文件翻譯:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] 
"ReservedPorts"=hex(7):31,00,30,00,39,00,30,00,2d,00,31,00,30,00,39,00,30,00,\ 
    20,00,31,00,30,00,39,00,38,00,2d,00,31,00,31,00,30,00,32,00,20,00,31,00,31,\ 
    00,36,00,31,00,2d,00,31,00,31,00,36,00,32,00,20,00,33,00,35,00,32,00,38,00,\ 
    2d,00,33,00,35,00,32,00,38,00,20,00,34,00,34,00,34,00,34,00,2d,00,34,00,34,\ 
    00,34,00,38,00,20,00,34,00,34,00,35,00,37,00,2d,00,34,00,34,00,35,00,37,00,\ 
    20,00,34,00,37,00,31,00,32,00,2d,00,34,00,37,00,31,00,34,00,20,00,35,00,34,\ 
    00,34,00,35,00,2d,00,35,00,34,00,34,00,36,00,20,00,38,00,30,00,38,00,30,00,\ 
    2d,00,38,00,30,00,38,00,33,00,20,00,38,00,34,00,34,00,33,00,2d,00,38,00,34,\ 
    00,34,00,33,00,00,00,00,00 
+0

或者,我剛剛意識到這一點,你可能只是模擬Windows Vista +行爲與單一範圍「1024-49151」 ... – 2010-11-02 08:58:15

3

轉到JBoss的服務。xml在conf文件夾下,並將RMI的端口從1098更改爲8099

8099
重新啓動服務器。

2

問題的根源在於JBOSS沒有被正常關閉。 如果您使用的是Windows, 請轉至任務管理器並終止JBOSS進程。

2

保留註冊表中的端口1098-1099。 如果正在運行,請重新啓動oracle服務,然後啓動JBOss。

1

如果您的默認IP地址由於某些問題而發生更改,那麼Jboss也會拋出此錯誤 表示 121. .89至121. .90只需檢查它並將其替換爲較新的IP地址即可。它會工作。