2009-06-19 20 views
9

Estoy recibiendo el siguiente error al intentar iniciar JBossJBoss - ExportException: El puerto ya está en 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) 

Sin embargo, cuando trato de ver qué puertos están siendo escuchados. ¡No veo ese puerto!

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

¿Alguna idea?

Gracias,

Tam

+0

¿Algún servidor de seguridad (ISA) cliente ejecutándose? O algún servicio ISS. ¿También lo intentó con TCPView – jitter

+0

¿Fue el último apagado de JBoss limpio? ¿Qué ventanas estás usando? Windows antes de 2008 a veces podría reservar puertos entre 1025-5000 para sus propios usos http://support.microsoft.com/kb/929851/en-us – jitter

Respuesta

6

Pruebe TCPView (TCPView v3.05). Tengo este "puerto ya en uso" bastante, y TCPView siempre generalmente atrapa al culpable.

+0

Útil, pero también vea esta solución más rápida: http://stackoverflow.com/a/6438810/396747 –

2

Nos encontramos con este problema hace algún tiempo, así, no sólo con JBoss, sino también de MySQL. que escribió sobre él en más detalle aquí:

Windows TCP Port Conflicts above 1024

Lo que se pretende es que Windows utiliza el rango de puertos entre 1000 y 5000 para los puertos llamados "efímeros". Esto significa que asigna puertos de este rango para procesos que solicitan un puerto aleatorio.

En las instalaciones de Windows 2000/2003 Server, así como en Windows XP Pro, puede reservar rangos de puertos (aunque solo cubran un solo puerto) para sus aplicaciones. Efectivamente, no están reservados para nada específico, sino simplemente excluidos de la asignación dinámica. Para ello, crear o editar el siguiente valor del registro (tipo REG_MULTI_SZ/Multi-String Value):

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

En este valor especifica rangos de puertos en el formato xxxx-yyyy por ser xxxx e yyyy el puerto más bajo y el más alto de la gama estar reservado. Para reservar un solo puerto, solo use los mismos valores para ambos (por ejemplo, 1099).

+0

¿Alguna idea de cómo lograr el mismo resultado en Windows 7? – leokom

2

Supongo que el puerto todavía está en uso. Usted puede encontrar que el uso de:

netstat -ao 

y

netstat -b 

Si no puede utilizar ese puerto, encontrar otro puerto y cambiarlo en el siguiente archivo XML:

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

El JBoss 5 tiene un nuevo ServiceBindingManager que utiliza inyección de bean para asignar puertos en tiempo de ejecución. Cambiar el puerto aquí puede hacer el truco para usted. También puede usar una configuración de puertos diferente y anular los puertos por un factor.

2

Con base en los puertos mencionados en el archivo referenciado por Sam, y la clave de registro referenciado por Daniel Schneller, el siguiente debe hacer el truco para JBoss EAP 5:

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

Traducido en un archivo .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

o, y me acabo de dar cuenta de esto, usted podría simplemente emular el comportamiento de Windows Vista + con el rango único "1024-49151" ... –

3

Ir a JBoss-servicio.xml en la carpeta conf y cambie el puerto para RMI de 1098 a 8099

8099
Reinicie el servidor.

+0

+1 para una gran solución: no todos pueden editar sus configuraciones de registro –

2

La causa principal es que JBOSS no se cerró correctamente. Si está usando Windows, vaya al administrador de tareas y elimine los procesos de JBOSS.

2

Reserve el puerto 1098-1099 en el registro. Reinicia el servicio Oracle si se está ejecutando, luego inicia el JBOss.

1

Este error también lo causa Jboss si su dirección IP predeterminada cambia debido a algún problema significa 121. . .89 a 121. . .90 Simplemente márquelo y reemplácelo con una dirección IP más nueva. Funcionará.

Cuestiones relacionadas