plugin - Depurando jsp con Spring-boot e IntelliJ
spring mvc intellij (1)
Estoy desarrollando una aplicación web (embalaje de guerra) usando spring-boot, jsp y un tomcat integrado. La aplicación funciona bien y puedo depurar archivos java sin ningún problema si agrego una configuración de ejecución maven con el arranque de primavera: objetivo de ejecución.
Pero cuando trato de agregar un punto de interrupción en uno de mis archivos jsp, IntelliJ muestra este error: "El punto de interrupción no pertenece a ninguna clase".
Si configuro IntelliJ para usar un servidor Tomcat externo, entonces la depuración jsp funciona perfectamente.
¿Hay alguna manera de depurar jsp usando el objetivo de maven resorte? ¿Es esto un problema con Spring-boot o con las configuraciones de Maven Run en IntelliJ?
Realmente me gustaría poder usar las capacidades de arranque completo desde mi entorno de desarrollo.
Gracias.
El problema es que el arranque de primavera genera otro proceso para la aplicación. Tienes que decirle al arranque que quieres depurar y no solo ejecutar el comando para maven o gradle en modo de depuración. :-( Ver:
- http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-remote-debug-gradle-run
- http://docs.spring.io/spring-boot/docs/1.1.4.BUILD-SNAPSHOT/maven-plugin/examples/run-debug.html
Actualización: para mi proyecto actual, solo proporciono una clase para inicializar el arranque de primavera en un archivo war. (Consulte los métodos correspondientes para usar el arranque de resorte para archivos de guerra que se implementan en contenedores web reales)
Así que durante el desarrollo de material frontend utilizo springboot: ejecuto para tener recargas rápidas de recursos, etc. y para la depuración del código java despliego el material en un tomcat en modo de depuración. Para un lanzamiento, solo tengo que decidir qué tipo de embalaje quiero, ya que mi aplicación puede ejecutarse como archivo jar o war.
Por cierto: si quieres usar tomcat únicamente (filtros especiales, etc.) puedes utilizar un tomcat integrado para Springboot: ejecutarlo también, para que tus entornos sean más similares y no busques bugs fantasma ;-)
Actualización 2
De acuerdo con https://github.com/spring-projects/spring-boot/issues/1138 , puede ejecutar el método principal de su aplicación de arranque para depurar. Supongo que ayuda utilizar el objetivo Maven al menos una vez para que todo esté compilado / copiado. ¡Funciona para mí! :-)
Actualización 3 Según el equipo de arranque de primavera, cambiaron la forma en que funciona Spring-boot: funciona, por lo que a partir de 1.2 también se puede usar el modo de depuración para el objetivo maven, aunque su forma recomendada de iniciar aplicaciones de arranque de primavera es siempre para comenzar el método principal.
Actualización 4 Puedo confirmar que a partir de la primavera 1.2 se pueden ejecutar directamente los objetivos Maven en modo de depuración para poder establecer puntos de interrupción, etc.