2010-05-05 40 views
40

Algunas veces cada vez que reinicie la aplicación, que se basa en Java puntales MySQL y JBoss 4.05 Versión me sale el error como Dirección ya en uso: JVM_BindDirección ya en uso: JVM_Bind java

Solo soluciono que sé que es para reiniciar la máquina e intentarlo de nuevo, funcionará. Else Algunas veces hago Ctrl-Alt-Del y Dejo todo el proceso relacionado con Java, algunas veces esto también funciona.

¿Pero cuál es el motivo exacto y cómo podemos evitar este problema?

+0

A veces los Lingers propiedad del puerto y se pega a su programa de Java, incluso después de que se cierre. Sin embargo, con Eclipse Java EE, el enlace del puerto se elimina en el momento que usted excepto su programa – CodyBugstein

Respuesta

38

Dirección ya en uso: JVM_Bind

significa que alguna otra aplicación ya se está escuchando en el puerto de su aplicación actual está tratando de obligar.

lo que debe hacer es, ya sea el puerto para su aplicación actual o mejor; solo averigüe la aplicación que ya se está ejecutando y mátala.

en Linux se puede encontrar el PID aplicación utilizando,

netstat -tulpn 
+3

¿Cómo lo encuentra en Windows, estoy ejecutando mi aplicación en Windows – gmhk

+7

netstat también funciona en Windows, en console try: netstat -an para obtener más información, http://en.wikipedia.org/wiki/Netstat – phoenix24

+1

otro consejo sería no ejecutar servidores de aplicaciones en Windows. De lo contrario, también podría ser útil no hacer clic en el botón de reinicio, sino detenerlo, esperar 5 segundos y luego volver a iniciarlo manualmente. A veces, los procesos de Java solo necesitan un tiempo mínimo para apagarse. Por ejemplo, si están ocupados con una operación de DB, tienden a seguir colgando hasta que la operación se haya completado. – rompetroll

1

La respuesta rápida sobre cómo prevenirlo es que lo más probable es que necesite detener JBoss antes de volver a iniciarlo.

Debería poder llamar al botón "Terminar" en la vista de consola para apagar el servidor.

+0

Estoy comenzando el JBoss de Eclipse – gmhk

2

¿Es posible que MySQL escuchando en el mismo puerto que JBoss?

¿Hay un número de puerto indicado en el mensaje de error - algo así como Address already in use: JVM_Bind:8080

Puede cambiar el puerto en JBoss server.xml para probar esto.

1

Ese error significa que usted está tratando de crear un nuevo ServerSocket en un puerto ya en uso por otro ServerSocket. Intente hacer que su aplicación cierre todos los conectores y conexiones que conozca y asegúrese de que su aplicación finalice por completo. También verifique si hay otro proceso iniciado por su programa.

12

por lo general me encuentro con esto cuando el puerto que el servidor (yo uso de JBoss) ya está en uso

sospechosos habituales

  1. Apache HTTP Server => bajar el servicio si se trabaja en las ventanas.
  2. IIS => detener la ISS utilizando
  3. Skype => sí llegué Skype adhiriéndose al puerto 80

Para cambiar el puerto al que JBoss 4.2.x se obliga a ir:

"C: \ jboss4.2.2 \ server \ default \ deploy \ jboss-web.deployer \ server.xml"

aquí por defecto es la instancia del servidor cambiar el puerto aquí:

< puerto conector = "8080" dirección = "$ {} jboss.bind.address" >

En el ejemplo anterior, el puerto está obligado a 8080

+0

cierre skype y ejecute su aplicación Java y luego abra Skype. – signonsridhar

0

intenta siguientes opciones para exce vinculante JVM ption:

  1. iniciar y detener el servidor. y verifica los ids del proceso del servidor y mata y detiene el servidor.
  2. vaya al panel de control-> herramienta administrativa-> servicio-> marque todos los servidores y detenga todos los servidores y luego inicie su propio servidor.
  3. cambie el navegador que usa. por ejemplo, si usa IE, cámbielo a Mozilla Firefox.
0

Estaba teniendo este problema también. Para mí, no podía comenzar/parar la Openfire (que dijo que fue detenido, pero todo seguía funcionando)

sudo /etc/init.d/openfire stop 
sudo /etc/init.d/openfire start 

Además, reiniciar Apache tampoco ayudó

sudo /etc/init.d/apache2 restart 

Los errores fueron en el interior :

/opt/openfire/logs/stderror.log 
Error creating server listener on port 5269: Address already in use 
Error creating server listener on port 5222: Address already in use 

La forma en que solucioné esto, tuve que apagar el servidor dentro del área de administración de mi host.

1

Puede también ser causada por doble definición de puerto 8080 en .. \ Tomcat \ conf \ server.xml:

<Connector port="8080" 
      enableLookups="false" redirectPort="8443" debug="0"/> 
<Connector port="8080" 
      enableLookups="false" address="127.0.0.1" maxParameterCount="30000"/> 
21

En este escenario ventanas ocurre cuando Eclipse se estrella sin un apagado limpio tendrá el el servidor local Jetty o Tomcat sigue funcionando. Cuando vuelva a abrir Eclipse e intente iniciar el servidor nuevamente, se abrirá la "Dirección ya en uso: JVM_Bind"

Puede resolver esto abriendo el Administrador de tareas y encontrando el proceso javaw.exe y finalizándolo.

Luego puede reiniciar el servidor en Eclipse.

enter image description here

0

que tenían el mismo en Windows. Mi solución fue conseguir a qué puerto se quiere conectar la depuración. (En IntelliJ, un rectángulo rojo ya proporciona la información: "Error al ejecutar Tomcat: no se puede abrir el puerto del depurador (127.0.0.1:XXXXX): ... Ya está en uso ...") Digamos que XXXXX es el número de puerto. Entonces busqué el problema y el PID en una ventana cmd:

netstat -ano | find "CLOSE_WAIT" | find ":XXXXX" 

que tiene el número PID como el último número en la línea de resultados.(Digamos AAAA) Por último:

TASKKILL /PID YYYY 

Una información adicional: Winscp desconectó mientras tanto, probablemente era la causa del problema. :)

0

Esto me sucedió recientemente al habilitar JMX en dos servicios de ejecución de tomcat dentro de Eclipse. Por error, coloqué el mismo puerto para cada servidor.

se limitan a dar cada jmx remota un puerto diferente

Servidor 1

-Dcom.sun.management.jmxremote.port=9000 

servidor 2

-Dcom.sun.management.jmxremote.port=9001 
Cuestiones relacionadas