Moja aplikacja internetowa Spring Boot
działa dobrze i chciałbym ją debugować za pomocą Eclipse.
Więc kiedy uruchamiam zdalny debugger aplikacji Java, którego portu powinienem słuchać? Czy jest jakieś ustawienie w mojej aplikacji internetowej, które muszę ustawić, aby włączyć debugowanie?
Odpowiedzi:
Dlaczego po prostu nie klikniesz
main()
metody prawym przyciskiem myszy i nie wybierzesz"Debug As... Java Application"
?źródło
W Spring Boot Reference znajduje się sekcja 19.2, która mówi o uruchamianiu aplikacji z włączoną obsługą zdalnego debugowania.
Po uruchomieniu aplikacji po prostu dodaj tę konfigurację zdalnej aplikacji Java w konfiguracjach uruchamiania / debugowania, wybierz port / adres zdefiniowany podczas uruchamiania aplikacji, a następnie możesz debugować.
źródło
java -agentlib:jdwp=help
stan „Starszego interfejsu -Xrunjdwp można nadal używać, ale zostanie on usunięty w przyszłej wersji”. Zamiast tego użyj-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
Łatwiejsze rozwiązanie:
Zamiast pisać
mvn spring-boot:run
, po prostu piszmvnDebug spring-boot:run
Nadal będziesz musiał podłączyć debugger w Eclipse, tworząc nową konfigurację debugowania dla „zdalnej aplikacji Java” na odpowiednim porcie.
źródło
Nie musiałem konfigurować zdalnego debugowania, aby to działało, użyłem Mavena.
spring-boot::run
.NB. Jeśli Twoje IDE ma problemy ze znalezieniem kodu źródłowego projektu podczas debugowania wiersz po wierszu, zapoznaj się z tą odpowiedzią SO, aby dowiedzieć się, jak ręcznie dołączyć kod źródłowy do aplikacji debugowania.
Mam nadzieję, że to komuś pomoże!
źródło
Jak debugować zdalną tymczasową lub produkcyjną aplikację Spring Boot
Po stronie serwera
Załóżmy, że pomyślnie wykonałeś przewodnik Spring Boot dotyczący konfigurowania aplikacji Spring Boot jako usługi . Twój artefakt aplikacji znajduje się w programie
/srv/my-app/my-app.war
wraz z plikiem konfiguracyjnym/srv/my-app/my-app.conf
:Po ponownym uruchomieniu aplikacji Spring Boot za pomocą
sudo service my-app restart
, w jej pliku dziennika znajdującym się pod adresem/var/log/my-app.log
powinna znajdować się linia mówiącaListening for transport dt_socket at address: 8002
.Po stronie klienta (maszyna deweloperska)
Otwieranie portu SSH przekazywania tunel do serwera:
ssh -L 8002:localhost:8002 [email protected]
. Nie wyłączaj tej sesji SSH.W Eclipse, z paska narzędzi, wybierz Uruchom -> Konfiguracje debugowania -> wybierz Zdalna aplikacja Java -> kliknij przycisk Nowy -> wybierz jako Standard typu połączenia (podłączenie do gniazda) , jako Host localhost i jako Port 8002 (lub cokolwiek masz skonfigurowane w poprzednich krokach). Kliknij Zastosuj, a następnie Debuguj .
Debugger Eclipse powinien teraz połączyć się ze zdalnym serwerem. Przełączenie do perspektywy debugowania powinno pokazać połączoną maszynę JVM i jej wątki. Punkty przerwania powinny odpalać, gdy tylko zostaną zdalnie uruchomione.
źródło
Uruchom poniższe polecenie, w którym
pom.xml
jest umieszczone:I uruchom zdalną aplikację java z opcją debugowania na porcie
5005
źródło
Spring Boot 2.0.3.RELEASE
.Moim zdaniem najlepszym rozwiązaniem jest dodanie wtyczki do pom.xml i nie musisz cały czas robić nic więcej:
źródło
mvn clean install
wyzwala debuger i kompilacja zawiesza się. Byłoby fajnie, gdybymvnDebug clean install
zrobiła to tylko komenda.źródło
Right click on the spring boot project -> debug as -> spring boot App
. Umieść punkt debugera i wywołaj aplikację z klienta, takiego jak listonoszźródło
Zobacz http://java.dzone.com/articles/how-debug-remote-java-applicat aby włączyć zdalne debugowanie. Jeśli używasz tomcat do uruchamiania aplikacji, uruchom tomcat z parametrami zdalnego debugowania lub możesz uruchomić tomcat z obsługą JPDA za pomocą następującego polecenia.
Windows
*nic
umożliwi to zdalne debugowanie na porcie 8000
źródło
W przypadku eclipse lub dowolnego innego środowiska IDE wystarczy kliknąć prawym przyciskiem myszy aplikację rozruchową głównego źródła i kliknąć opcję „debuguj jako aplikację java”
źródło
Na to pytanie już udzielono odpowiedzi, ale mam też ten sam problem z debugowaniem Springboot + gradle + jHipster,
Przeważnie aplikacja Spring boot może debugować prawym przyciskiem myszy i debugować, ale kiedy używasz gradle, mając dodatkowe ustawienia parametrów środowiska, nie jest możliwe debugowanie bezpośrednio.
Aby rozwiązać ten problem, Eclipse dostarczyło jedną dodatkową funkcję jako zdalną aplikację Java
Korzystając z tych funkcji, możesz debugować swoją aplikację.
Postępuj zgodnie z poniższym krokiem:
uruchom aplikację gradle za pomocą
./gradlew bootRun --debug-jvm
poleceniaTeraz przejdź do eclipse -> kliknij prawym przyciskiem myszy projekt i konfiguracja debugowania -> Remote Java Application.
dodaj hosta i port jako localhost i port jako 5005 (domyślny dla debugowania gradle, możesz to zmienić)
Zobacz więcej szczegółów i krok.
źródło
Kliknij prawym przyciskiem myszy główny plik klasy aplikacji Spring Boot -> wybierz opcje Debuguj jako -> Wybierz aplikację Java
Teraz możesz używać punktów przerwania do debugowania aplikacji.
źródło