2009-06-19 8 views
9

sto ottenendo il seguente errore quando provo ad avviare JBossJBoss - ExportException: Porta già in uso: 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) 

Tuttavia quando provo a vedere quali porte di essere ascoltati. Non vedo quel porto!

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

tutte le idee?

Grazie,

Tam

+0

Qualsiasi client firewall (ISA) in esecuzione? O qualche servizio ISS. Hai provato anche con TCPView – jitter

+0

L'ultimo arresto di JBoss è stato pulito? Quali finestre stai usando? Windows prima del 2008 potrebbe talvolta riservare porte tra 1025-5000 per i propri usi http://support.microsoft.com/kb/929851/en-us – jitter

risposta

6

Provare TCPView (TCPView v3.05). Ottengo parecchio questo "porto già in uso" e TCPView sempre rileva in genere.

+0

Utile, ma vedi anche questa soluzione più rapida: http://stackoverflow.com/a/6438810/396747 –

2

Abbiamo incontrato questo problema qualche tempo fa, così, non solo con JBoss, ma anche MySQL. ho scritto su di esso in modo più dettagliato qui:

Windows TCP Port Conflicts above 1024

Che si tratta di è che Windows utilizza l'intervallo di porte tra 1000 e 5000 per i cosiddetti porte "effimere". Ciò significa che assegna le porte da questo intervallo per i processi che richiedono una porta casuale.

Nelle installazioni di Windows 2000/2003 Server e in Windows XP Pro è possibile riservare intervalli di porte (anche se coprono solo una singola porta) per le proprie applicazioni. In effetti non sono riservati a qualcosa di specifico, ma sono solo esclusi dall'allocazione dinamica. Per fare ciò, creare o modificare il seguente valore di registro (tipo REG_MULTI_SZ/Multi-String Value):

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

In questo valore specificare intervalli di porte nel formato xxxx-yyyy con xxxx e yyyy è il porto più basso e più alto del range di essere riservato. Per riservare una singola porta, usa solo gli stessi valori per entrambi (ad esempio 1099).

+0

qualsiasi idea su come ottenere lo stesso risultato in Windows 7? – leokom

2

Immagino che quella porta sia ancora in uso. Si possono trovare che l'uso di:

netstat -ao 

e

netstat -b 

Se non è possibile utilizzare tale porta, trovare un altro porto e modificarlo nel seguente file XML:

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

Il JBoss 5 ha un nuovo ServiceBindingManager che utilizza l'iniezione di bean per assegnare le porte in fase di runtime. Cambiare la porta qui potrebbe fare il trucco per te. È inoltre possibile utilizzare una diversa configurazione delle porte e ignorare le porte di un fattore.

2

Sulla base dei porti menzionati nel file indicato da Sam, e la chiave di registro a cui fa riferimento Daniel Schneller, il seguente dovrebbe fare il trucco per JBoss EAP 5:

1090-1090 1098-1102 1161-1162 3528 -3528 4444-4448 4457-4457 4712-4714 5445-5446 8080-8083 8443-8443

Tradotto in un file 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

oppure, e ho appena capito, probabilmente potresti semplicemente emulare il comportamento di Windows Vista + con il singolo intervallo "1024-49151" ... –

3

Vai a JBoss-service.xml sotto cartella conf e modifica la porta per RMI da 1098 a 8099 Riavvia il server.

+0

+1 per un'ottima soluzione: non tutti possono modificare le proprie impostazioni di registro –

2

La causa principale è che JBOSS non è stato arrestato correttamente. Se si utilizza Windows, passare al task manager e terminare i processi JBOSS.

2

Riservare la porta 1098-1099 nel registro. Riavvia il servizio Oracle se è in esecuzione, quindi avvia JBOss.

1

Questo errore viene generato anche da Jboss se l'indirizzo IP predefinito cambia a causa di qualche problema 121. . .89 a 121. . .90 Basta controllare e sostituirlo con un nuovo indirizzo IP. Funzionerà.