HOW TO: Depurar remotamente los servidores de JBoss

De Thubanpedia
Saltar a: navegación, buscar


Para depurar remotamente una aplicación de JBoss desde Eclipse, inicie el servidor de JBoss en modo depuración. Para activar este modo, deberá configurarlo desde el archivo batch bin/run. La depuración que se realiza desde JBoss está basada en la architectura de depuración de la plataforma Java (JPDA , por sus siglas en inglés). Configure la variable JAVA_OPTS de la siguiente manera:


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

Los distintos parámetros de depuración son:

Parámetro Descripción
"-XDebug" Posibilita la depuración.
"-Xnoagent" Desactiva todos los agentes de depuración previos.
"-Xrunjdwp" Especifica el mecanismo de conexión, la dirección de transporte y los valores de suspención y servidor.


Para utilizar la funcionalidad de depuración remota desde Eclipse, es necesario agregar una excepción en JBossServlet. Por ejemplo, puede agregar la excepción NullPointerException en JBossServlet.java reemplazando:

out.println("Eclipse JBoss  Debugging");

por:

     String str=null;
  out.println(str.toString());


A continuación, será necesario configurar la depuración en el proyecto de Eclipse. Seleccione la opción Debug ("depurar") del combo Debug Option ("opciones de depuración"), como se muestra en la imagen:

Debug10.gif


Se desplegará una ventana emergente. En la ventana, seleccione el nodo Remote Java Application ("aplicación Java remota"). Haga click derecho sobre el nodo y seleccione New ("nuevo") como muestra la imagen.

Debug11.gif


En esta ventana, ingrese un nombre para la configuaración de depuración. Seleccione el proceso que desea depurar, por ejemplo el proyecto EclipseJBoss que creó anteriormente en Eclipse IDE. Seleccione la Tipo de conexión por defecto. En Connection Properties ("propiedades de conexión"), ingrese localhost como el host y especifique el puerto 8787, el mismo que ingresó mientras corría el script de batch en el servidor de JBoss. Presione el botón Apply ("aplicar") para agregar la configuración de depuración de la aplicación Java, como se muestra en la imagen:

Debug12.gif


A continuación, ingrese los breakpoint de excepción en el archivo JBossServlet.java. Anteriormente, se había agregado la excepción NullPointerException en JBossServlet. Para agregar un breakpoint a la clase de servlet, seleccione Run ("Iniciar") -> Add Java Exception Breakpoint ("insertar breakpoint de Excepción de Java"), tal como se muestra en la imagen:

Debug13.gif


En la nueva ventana, seleccione la excepción NullPointerException, como se muestra en la imagen: El breakpoint de la excepción NullPointerException se agregará a la clase servlet.

Debug14.gif


Si la excepción NullPointerException se genera en la aplicación servlet del servidor de JBoss, la aplicación quedará suspendida y la futura depuración del Eclipse IDE mostrará esta excepción.