2010-09-16 25 views
9

No he creado una aplicación web Java antes, pero la tengo lo suficientemente completa como para probarla y Maven está compilando mi archivo WAR muy bien. Es un proyecto Maven de varios módulos y todos los módulos dependientes tienen sus archivos JAR en el directorio WEB-INF/lib del WAR.¿La mejor manera de depurar la aplicación web Java empaquetada como WAR utilizando Eclipse y Maven?

Entonces, todo parece estar bien, pero ¿cómo se puede depurar? Sé cómo (desde la línea de comandos) ejecutar WAR en Tomcat en mi máquina. También creo que sé cómo configurar y ejecutar el plugin Maven Jetty desde la línea de comandos también. Pero ¿cuál es la mejor forma de depurar ... con todos los puntos de corte y la inspección variable que amo con Eclipse?

¿Existe algún tipo de configuración de inicio que deba crear, o debo adjuntar el depurador de forma remota? ¿Hay algo en Eclipse que pueda ayudar ... como un complemento?

Respuesta

17

Si ejecuta su WAR con opciones de pase Plugin Tomcat/embarcadero de depuración en el Maven:

export MAVEN_OPTS="-Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000" mvn tomcat:run 

Si ejecuta su WAR mediante el Tomcat regular, simplemente se ejecuta con el apoyo JPDA (depurador) activado:

$TOMCAT_HOME/bin/catalina.sh jpda start 

el puerto por defecto para Tomcat 6 es JPDA 8000.

Ahora conectar con el Eclipse (Depurar -> Java Application a distancia) en el puerto 8000 y disfrutar de su fina debuggi sesión ng.

3

para habilitar la depuración a través del eclipse:

que pase al siguiente inicio de Tomcat:

-Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=9999,suspend=n 

Luego, a través de Eclipse hacer de depuración remota.

  • Goto depuración de configuración Menú> Depuración

  • de desplazamiento hacia abajo para seleccionar Java Remote Aplicación

  • rt clic para crear una nueva
    configuración
  • Seleccione el tipo de conexión como estándar (Socket Adjuntar) y agregar el nombre de host y el puerto.

iniciar la depuración sencilla abierta cuando el servidor está en ejecución .---

+0

y seleccione el proyecto [código fuente] también –

3

¿Hay algún tipo de configuración de lanzamiento debería crear o puedo conectar el depurador de forma remota? ¿Hay algo en Eclipse que pueda ayudar ... como un complemento?

Con m2eclipse (y el Integración Maven para WTP que install de los Suplementos), se puede usar la DAP y comenzar su aplicación en modo de depuración.

Como alternativa, puede conectar un depurador remoto a un embarcadero. Ver Debugging with the Maven Jetty Plugin in Eclipse.

+0

Tengo instalado m2eclipse. ¿Cómo utilicé WTP para iniciar mi aplicación en modo de depuración? – HDave

3

Una mejor forma de agregar las opciones de depuración a la opción $MAVEN_OPTS, y por lo tanto no fusionarlas con las otras opciones existentes (si desea iniciar su aplicación no en el modo de depuración, debe eliminar esas opciones nuevamente), para utilizar el depurador de Maven mvnDebug, ubicado en su directorio bin, de esta manera mvnDebug jetty:run. Esto ejecutará su aplicación en modo de depuración y lo que resta es adjuntar su depurador.

+0

No estaba al tanto de 'mvnDebug' ¿hay alguna manera fácil de lanzarlo desde Eclipse como parte de la configuración de lanzamiento de Maven? – HDave

+0

Si va a usar mvnDebug, debe ser desde la línea de comandos no desde Eclipse (aunque separar el depurador puede ser de Eclipse). – ahmehri

Cuestiones relacionadas