jueves, 26 de julio de 2012

Debug remoto desde Eclipse en JBoss

Este es un tema muy hablado ya por internet, aunque me gustaría añadir un pequeño matiz a este pequeño tutorial, ya que en esta ocasión, a pesar de intentarlo por activa y por pasiva, no tenía forma de realizar el debug, recibiendo siempre un mensaje de error de tipo TimeOutException:

Failed to connect to remote VM. 
Connection timed out. org.eclipse.jdi.TimeoutException

En primer lugar habilitaremos el puerto de escucha en JBoss para poder realizar debug:

1º Editamos el fichero /jboss/bin/run.bat

y descomentamos la línea eliminando la palabra "rem" correspondiente a :

set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n, %JAVA_OPTS%

Si dejamos la opción suspend=y, al arrancar JBoss éste se quedará a la espera de que un cliente se conecte al puerto de escucha (en este caso 1044) para terminar el despliegue.

2º Configuramos en eclipse el debug remoto
Para ello hacemos seleccionamos la opción Debug as... >> Debug Configurations.

Nos situamos en Remote Java Application y hacemos clic sobre el icono de New Launch Configurations.

- Elegimos el proyecto.
- Connection Type: Standard (Socket Attach)
- Host: IP de la máquina donde se encuentra JBoss
- Port: puerto configurado en el run.bat


Aplicamos los cambios y hacemos clic en debug.

Ya solo nos queda poner nuestros puntos de interrupción y debuggear normalmente.

En cuanto al error comentado al principio, en esta ocasión el problema era del firewall del servidor (Windows 2008 Server), tenedlo en cuenta si siguiendo estos pasos no lograis conectar.

No hay comentarios: