Meine Spring Boot
Webanwendung läuft einwandfrei und ich möchte sie über Eclipse debuggen.
Welchen Port sollte ich beim Starten meines Remote-Java-Anwendungsdebuggers abhören? Und gibt es eine Einstellung in meiner Webanwendung, die ich festlegen muss, um das Debuggen zu aktivieren?
Antworten:
Warum klicken Sie nicht einfach mit der rechten Maustaste auf die
main()
Methode und wählen sie aus"Debug As... Java Application"
?quelle
In Abschnitt 19.2 der Spring Boot Reference finden Sie Informationen zum Starten Ihrer Anwendung mit aktivierter Remote-Debugging-Unterstützung.
Nachdem Sie Ihre Anwendung gestartet haben, fügen Sie einfach diese Remote Java Application-Konfiguration in Run / Debug-Konfigurationen hinzu, wählen Sie den Port / die Adresse aus, die Sie beim Starten Ihrer App definiert haben, und Sie können dann debuggen.
quelle
java -agentlib:jdwp=help
Status "Die ältere -Xrunjdwp-Schnittstelle kann weiterhin verwendet werden, wird aber in einer zukünftigen Version entfernt". Verwenden Sie stattdessen-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
Einfachere Lösung:
Anstatt zu
mvn spring-boot:run
tippen, tippen Sie einfachmvnDebug spring-boot:run
Sie müssen den Debugger weiterhin in Eclipse anhängen, indem Sie eine neue Debug-Konfiguration für eine "Remote-Java-Anwendung" am entsprechenden Port vornehmen.
quelle
Ich musste kein Remote-Debugging einrichten, um dies zum Laufen zu bringen. Ich habe Maven verwendet.
spring-boot::run
.NB. Wenn Ihre IDE beim zeilenweisen Debuggen Probleme hat, den Quellcode Ihres Projekts zu finden, lesen Sie diese SO-Antwort , um herauszufinden, wie Sie Ihren Quellcode manuell an die Debug-Anwendung anhängen können.
Hoffe das hilft jemandem!
quelle
Debuggen einer Remote-Staging- oder Produktions-Spring Boot-Anwendung
Serverseitig
Angenommen, Sie haben die Anleitung von Spring Boot zum Einrichten Ihrer Spring Boot-Anwendung als Dienst erfolgreich befolgt . Ihr Anwendungsartefakt befindet sich in
/srv/my-app/my-app.war
, zusammen mit einer Konfigurationsdatei/srv/my-app/my-app.conf
:Wenn Sie Ihre Spring Boot-Anwendung mit neu starten
sudo service my-app restart
, sollte in der Protokolldatei/var/log/my-app.log
unter eine Zeile mit der Aufschrift stehenListening for transport dt_socket at address: 8002
.Clientseitig (Entwicklermaschine)
Öffnen Sie einen SSH-Portweiterleitungstunnel zum Server :
ssh -L 8002:localhost:8002 [email protected]
. Lassen Sie diese SSH-Sitzung laufen.Wählen Sie in Eclipse in der Symbolleiste Ausführen -> Debug-Konfigurationen -> Remote-Java-Anwendung auswählen -> Klicken Sie auf die Schaltfläche Neu -> Wählen Sie als Verbindungstyp Standard (Socket Attach) , als Host localhost und als Port 8002 (oder was auch immer Sie haben) aus in den vorhergehenden Schritten konfiguriert). Klicken Sie auf Übernehmen und dann auf Debuggen .
Der Eclipse-Debugger sollte jetzt eine Verbindung zum Remote-Server herstellen. Wenn Sie zur Debug- Perspektive wechseln, sollten die verbundene JVM und ihre Threads angezeigt werden. Haltepunkte sollten ausgelöst werden, sobald sie aus der Ferne ausgelöst werden.
quelle
Führen Sie den folgenden Befehl aus, wo er
pom.xml
platziert ist:Starten Sie Ihre Remote-Java-Anwendung mit der Debugging-Option am Port
5005
quelle
Spring Boot 2.0.3.RELEASE
.Die beste Lösung ist meiner Meinung nach, ein Plugin in die Datei pom.xml einzufügen, und Sie müssen nicht die ganze Zeit etwas anderes tun:
quelle
mvn clean install
löst der Befehl den Debugger aus und der Build hängt. Es wäre cool, wenn nur dermvnDebug clean install
Befehl dies tun würde.quelle
Right click on the spring boot project -> debug as -> spring boot App
. Setzen Sie einen Debugger-Punkt und rufen Sie die App von einem Client wie einem Postboten aufquelle
Informationen zum Aktivieren des Remote-Debuggens finden Sie unter http://java.dzone.com/articles/how-debug-remote-java-applicat . Wenn Sie Tomcat zum Ausführen Ihrer Anwendung verwenden, starten Sie Tomcat mit Remote-Debug-Parametern, oder Sie können Tomcat mit JPDA-Unterstützung starten, indem Sie den folgenden Befehl verwenden.
Windows
* nix
Dadurch wird das Remote-Debugging auf Port 8000 aktiviert
quelle
Klicken Sie bei Eclipse oder einer anderen IDE mit der rechten Maustaste auf Ihre Haupt-Spring-Boot-Anwendung und klicken Sie auf "Als Java-Anwendung debuggen".
quelle
Diese Frage ist bereits beantwortet, aber ich habe auch das gleiche Problem beim Debuggen von Springboot + gradle + jHipster.
Meistens kann die Spring-Boot-Anwendung per Rechtsklick debuggen und debuggen. Wenn Sie jedoch gradle verwenden und einige zusätzliche Umgebungsparameter einrichten, ist ein direktes Debuggen nicht möglich.
Um dies zu beheben, stellte Eclipse eine zusätzliche Funktion als Remote-Java-Anwendung bereit
Mit diesen Funktionen können Sie Ihre Anwendung debuggen.
Befolgen Sie den folgenden Schritt:
Führen Sie Ihre Gradle-Anwendung mit dem
./gradlew bootRun --debug-jvm
Befehl ausGehen Sie nun zu Eclipse -> Rechtsklick auf Projekt und Debug-Konfiguration -> Remote-Java-Anwendung.
Fügen Sie Ihren Host und Port als localhost und Port als 5005 hinzu (Standard für Gradle-Debug, Sie können es ändern)
Siehe für weitere Einzelheiten und Schritt.
quelle
Klicken Sie mit der rechten Maustaste auf die Hauptklassendatei von Spring Boot Applications -> wählen Sie Debug As- Optionen -> Java Application auswählen
Jetzt können Sie Haltepunkte zum Debuggen der Anwendung verwenden.
quelle