Mi aplicación Spring Boot
web funciona bien y me gustaría depurarla a través de Eclipse.
Entonces, al iniciar mi depurador de aplicaciones Java remotas, ¿qué puerto debo escuchar? ¿Y hay alguna configuración en mi aplicación web que deba configurar para habilitar la depuración?
Respuestas:
¿Por qué no hace clic derecho en el
main()
método y elige"Debug As... Java Application"
?fuente
Hay una sección 19.2 en Spring Boot Reference que le informa sobre cómo iniciar su aplicación con el soporte de depuración remota habilitado.
Después de iniciar su aplicación, simplemente agregue la configuración de la Aplicación Java Remota en las configuraciones Ejecutar / Depurar, seleccione el puerto / dirección que definió al iniciar su aplicación, y luego podrá depurar.
fuente
java -agentlib:jdwp=help
indica "La interfaz anterior -Xrunjdwp aún se puede usar, pero se eliminará en una versión futura". En su lugar use-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
Solución más sencilla:
En lugar de escribir
mvn spring-boot:run
, simplemente escribamvnDebug spring-boot:run
Aún necesitará adjuntar el depurador en Eclipse realizando una nueva configuración de depuración para una "Aplicación Java remota" en el puerto correspondiente.
fuente
No necesitaba configurar la depuración remota para que esto funcionara, usé Maven.
spring-boot::run
.NÓTESE BIEN. Si su IDE tiene problemas para encontrar el código fuente de su proyecto al realizar la depuración línea por línea, eche un vistazo a esta respuesta SO para averiguar cómo adjuntar manualmente su código fuente a la aplicación de depuración.
¡Espero que esto ayude a alguien!
fuente
Cómo depurar una aplicación Spring Boot de producción o puesta en escena remota
Lado del servidor
Supongamos que ha seguido con éxito la guía de Spring Boot para configurar su aplicación Spring Boot como servicio . El artefacto de su aplicación reside en
/srv/my-app/my-app.war
, acompañado de un archivo de configuración/srv/my-app/my-app.conf
:Cuando reinicie su aplicación Spring Boot con
sudo service my-app restart
, entonces en su archivo de registro ubicado en/var/log/my-app.log
debería haber una línea que digaListening for transport dt_socket at address: 8002
.Lado del cliente (máquina de desarrollador)
Abrir una redirección de puertos SSH túnel para el servidor:
ssh -L 8002:localhost:8002 [email protected]
. Mantenga esta sesión SSH en ejecución.En Eclipse, desde la barra de herramientas, seleccione Ejecutar -> Configuraciones de depuración -> seleccione Aplicación Java remota -> haga clic en el botón Nuevo -> seleccione como Tipo de conexión Estándar (Conexión de socket) , como Host localhost y como Puerto 8002 (o lo que tenga configurado en los pasos anteriores). Haga clic en Aplicar y luego en Depurar .
El depurador de Eclipse ahora debería conectarse al servidor remoto. El cambio a la perspectiva de depuración debería mostrar la JVM conectada y sus subprocesos. Los puntos de interrupción deben activarse tan pronto como se activen de forma remota.
fuente
Ejecutar debajo del comando donde
pom.xml
se coloca:E inicie su aplicación java remota con la opción de depuración en el puerto
5005
fuente
Spring Boot 2.0.3.RELEASE
.En mi opinión, la mejor solución es agregar un complemento en pom.xml, y no es necesario que haga nada más todo el tiempo:
fuente
mvn clean install
activa el depurador y la compilación se bloquea. Sería genial si solo elmvnDebug clean install
comando lo hiciera.fuente
Right click on the spring boot project -> debug as -> spring boot App
. Ponga un punto de depuración e invoque la aplicación desde un cliente como carterofuente
Consulte http://java.dzone.com/articles/how-debug-remote-java-applicat para habilitar la depuración remota. Si está utilizando tomcat para ejecutar su aplicación, inicie tomcat con parámetros de depuración remotos o puede iniciar tomcat con soporte JPDA usando el siguiente comando.
Ventanas
*nada
esto permitirá la depuración remota en el puerto 8000
fuente
Con eclipse o cualquier otro IDE, simplemente haga clic derecho en su aplicación principal de arranque de primavera y haga clic en "depurar como aplicación java"
fuente
Esta pregunta ya está respondida, pero también tengo el mismo problema para depurar Springboot + gradle + jHipster,
En su mayoría, la aplicación de arranque Spring puede depurar haciendo clic con el botón derecho y depurar, pero cuando usa gradle, al tener alguna configuración de parámetros de entorno adicional, no es posible depurar directamente.
Para resolver esto, Eclipse proporcionó una característica adicional como Aplicación Java Remota
Al utilizar estas funciones, puede depurar su aplicación.
Siga el siguiente paso:
ejecuta tu aplicación gradle con el
./gradlew bootRun --debug-jvm
comandoAhora vaya a eclipse -> haga clic derecho en proyecto y configuración de depuración -> Aplicación Java remota.
agregue su host y puerto como localhost y puerto como 5005 (predeterminado para la depuración de gradle, puede cambiarlo)
Consulte para obtener más detalles y pasos.
fuente
Haga clic con el botón derecho en el archivo de clase principal de Spring Boot Applications -> seleccione las opciones Depurar como -> Seleccione la aplicación Java
Ahora puede utilizar puntos de interrupción para depurar la aplicación.
fuente