Depurar nuestra aplicación web. Debugging.

Este tutorial veremos como depurar o debugear tanto JSPs, Servlets o código java general de nuestra aplicación Web.

Pasos para depurar o debugear

En este tutorial vamos a depurar el servlet LoginServlet.java y la JSP login.jsp con los que trabajamos en el tutorial anterior.

Lo primero que haremos es colocar puntos de interrupción (breakpoints)

Abrimos login.jsp y hacemos doble click sobre el margen izquierdo del editor en la línea de código donde queremos interrumpir la ejecución de la aplicación. Si volvemos a hacer doble click sobre el bearkpoint este desaparece.

De forma similar abrimos LoginServlet.java y hacemos doble click sobre el margen izquierdo del editor en la línea de código donde queremos interrumpir la ejecución en el servlet.

Iniciamos el servidor Tomcat en modo Debug y ejecutamos la aplicación.

Sobre login.html botón derecho del ratón - Debug As - Debug on Server. Esto abre el browser en http://localhost:8080/first-jee/login.html.

A diferencia de las ejecuciones anteriores podemos ver en la vista Servers que a la derecha de Tomcat v6.0 at localhost indica Depurando (Debugging). A continuación si oprimimos el botón Submit Query aparecerá

Esta ventana nos pide confirmación para el cambio a la perspectiva debug en eclipse. Para evitar que esta ventana vuelva a aparecer marcamos "Remember my decision" y oprimimos yes. A continuación podemos ver la perspectiva Debug (en la esquina superior derecha vemos una cucaracha seleccionada). No se asusten si ven las vistas dispuestas de diferente forma, lo que pasa es que yo he personalizado esta vista arrastrando y soltando las vistas a mi gusto.

En la imagen anterior podemos ver al editor de login.jsp con una línea verde en el lugar donde pusimos el breakpoint. Esto significa que la ejecución esta detenida en esa línea.

Abajo, en la vista variables se ven las variables que existen en este momento de la ejecución y podemos explorar su contenido.

A la izquierda, en la vista Debug se puede ver lo que se conoce como pila de ejecución. Cada línea indicada con es un thread del servidor en ejecución y podemos ver que un thread esta detenido en la línea 10 de la página login.jsp. Abajo de "login.jsp line:10".

Vale destacar que las opciones de debug de una JSP son más limitadas que sobre un archivo .java. Para ver esto vamos a depurar el servlet LoginServlet.java.

Primero vamos a detener la ejecución actual haciendo click sobre el cuadrado rojo en la vista Debug y volvemos a la perspectiva JEE haciendo click en el botón con un grano de café en la esquina superior derecha de eclipse. Luego vamos a crear una nueva página login-servlet.html con el siguiente contenido

<html>
<body>
<form action="login" method="post">
<table>
<tr>
<td>User</td>
<td><input name="user" /></td>
</tr>
<tr>
<td>password</td>
<td><input name="password" /></td>
</tr>
</table>
<input type="submit" />
</form>
</body>
</html>

Esta página es igual a login.jsp con la única diferencia que action apunta a login en vez de login.jsp. Sobre login-servlet.html botón derecho del ratón - Debug As - Debug on Server y se abre el browser en http://localhost:8080/first-jee/login-servlet.html. A continuación rellenamos User con edu4java y oprimimos el botón Submit:

Aquí vemos que la ejecución se ha detenido en el breakpoint que pusimos en el servlet. Si ponemos el puntero del ratón sobre la variable user podemos ver que su contenido es edu4java. Esta opción no existe cuando depuramos una JSP.

En el próximo tutorial veremos Depuración sobre un el servidor remoto. Remote Debugging.

<< Introducción a Java Server Pages JSP Depuración sobre un servidor remoto. Remote Debugging >>