Ma Spring Boot
webapp fonctionne très bien et j'aimerais la déboguer via Eclipse.
Donc, lors du lancement de mon débogueur Remote Java Application, quel port dois-je écouter? Et y a-t-il un paramètre sur mon application Web que je dois définir pour activer le débogage?
Réponses:
Pourquoi ne faites-vous pas un clic droit sur la
main()
méthode et choisissez"Debug As... Java Application"
?la source
Il y a la section 19.2 dans Spring Boot Reference qui vous explique comment démarrer votre application avec la prise en charge du débogage à distance activée.
Après avoir démarré votre application, ajoutez simplement cette configuration de l'application Java distante dans les configurations Exécuter / Déboguer, sélectionnez le port / l'adresse que vous avez défini lors du démarrage de votre application, puis vous êtes libre de déboguer.
la source
java -agentlib:jdwp=help
états en cours d'exécution "L'ancienne interface -Xrunjdwp peut toujours être utilisée, mais sera supprimée dans une prochaine version". Utilisez plutôt-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
Solution plus simple:
Au lieu de taper
mvn spring-boot:run
, tapez simplementmvnDebug spring-boot:run
Vous devrez toujours attacher le débogueur dans Eclipse en créant une nouvelle configuration de débogage pour une «application Java distante» sur le port concerné.
la source
Je n'avais pas besoin de configurer le débogage à distance pour que cela fonctionne, j'ai utilisé Maven.
spring-boot::run
.NB. Si votre IDE a des problèmes pour trouver le code source de votre projet lors du débogage ligne par ligne, jetez un œil à cette réponse SO pour savoir comment attacher manuellement votre code source à l'application de débogage.
J'espère que cela aide quelqu'un!
la source
Comment déboguer une application Spring Boot de production ou de préparation à distance
Du côté serveur
Supposons que vous ayez suivi avec succès le guide de Spring Boot sur la configuration de votre application Spring Boot en tant que service . Votre artefact d'application réside dans
/srv/my-app/my-app.war
, accompagné d'un fichier de configuration/srv/my-app/my-app.conf
:Lorsque vous redémarrez votre application Spring Boot avec
sudo service my-app restart
, puis dans son fichier journal situé à/var/log/my-app.log
devrait être une ligne disantListening for transport dt_socket at address: 8002
.Côté client (machine de développement)
Ouvrez un tunnel de redirection de port SSH sur le serveur:
ssh -L 8002:localhost:8002 [email protected]
. Gardez cette session SSH en cours d'exécution.Dans Eclipse, dans la barre d'outils, sélectionnez Exécuter -> Configurations de débogage -> sélectionnez Application Java distante -> cliquez sur le bouton Nouveau -> sélectionnez comme type de connexion standard (Socket Attach) , comme hôte local hôte et comme port 8002 (ou tout ce que vous avez configuré dans les étapes précédentes). Cliquez sur Appliquer puis sur Déboguer .
Le débogueur Eclipse doit maintenant se connecter au serveur distant. Le passage à la perspective Débogage doit afficher la JVM connectée et ses threads. Les points d'arrêt doivent se déclencher dès qu'ils sont déclenchés à distance.
la source
Exécutez la commande ci-dessous où
pom.xml
est placé:Et démarrez votre application Java distante avec l'option de débogage sur le port
5005
la source
Spring Boot 2.0.3.RELEASE
.La meilleure solution à mon avis est d'ajouter un plugin dans le pom.xml, et vous n'avez rien d'autre à faire tout le temps:
la source
mvn clean install
déclenche le débogueur et la construction se bloque. Ce serait cool si seule lamvnDebug clean install
commande le faisait.la source
Right click on the spring boot project -> debug as -> spring boot App
. Mettez un point de débogage et invoquez l'application à partir d'un client comme postmanla source
Veuillez consulter http://java.dzone.com/articles/how-debug-remote-java-applicat pour activer le débogage à distance. Si vous utilisez tomcat pour exécuter votre application, démarrez tomcat avec les paramètres de débogage à distance ou vous pouvez démarrer tomcat avec le support JPDA en utilisant la commande suivante.
les fenêtres
*rien
cela permettra le débogage à distance sur le port 8000
la source
Avec eclipse ou tout autre IDE, cliquez avec le bouton droit de la souris sur votre application de démarrage de printemps principale et cliquez sur "déboguer en tant qu'application java"
la source
Cette question a déjà reçu une réponse, mais j'ai également eu le même problème pour déboguer Springboot + gradle + jHipster,
La plupart du temps, l'application de démarrage Spring peut déboguer par clic droit et déboguer, mais lorsque vous utilisez gradle, avec une configuration de paramètre d'environnement supplémentaire, il n'est pas possible de déboguer directement.
Pour résoudre ce problème, Eclipse a fourni une fonctionnalité supplémentaire en tant qu'application Java distante
en utilisant ces fonctionnalités, vous pouvez déboguer votre application.
Suivez l'étape ci-dessous:
exécutez votre application gradle avec la
./gradlew bootRun --debug-jvm
commandeMaintenant, allez dans eclipse -> projet de clic droit et configuration de débogage -> Application Java distante.
ajoutez votre hôte et portez comme hôte local et portez comme 5005 (par défaut pour le débogage gradle, vous pouvez le changer)
Reportez-vous pour plus de détails et pour l'étape.
la source
Faites un clic droit sur le fichier de classe principale des applications Spring Boot -> sélectionnez les options Déboguer en tant que -> Sélectionnez l'application Java
Vous pouvez maintenant utiliser des points d'arrêt pour déboguer l'application.
la source