Zdalne debugowanie aplikacji uruchomionych w kontenerze Tomcat Skip to content →

Zdalne debugowanie aplikacji uruchomionych w kontenerze Tomcat

Istnieje wiele różnych technik debugowania. Jedną z najlepszych i najwygodniejszych jest debugowanie za pomocą narzędzi, które pozwalają nam zatrzymywać wykonywanie aplikacji w wyznaczonych miejscach (breakpoint).

Realizacja jednego z projektów nasunęła pytanie:  w jaki sposób debugować aplikację napisaną w Javie przy użyciu Springa, która jest uruchamiana za pomocą Mavena we wbudowanym kontenerze Tomcat, używając narzędzi dostępnych z poziomu IntelliJ?

Rozwiązanie okazuje się bardzo proste. Wystarczy użyć komendy mvnDebug oraz połączyć się do uruchominej aplikacji.

Uruchamianie aplikacji w trybie debug

Normalnie aplikacja jest startowana za pomocą polecenia

W celu analizy podmieniamy powyższe polecenie na

Po wykonaniu polecenia zostaniemy poinformowani na jakim porcie możemy się łączyć do aplikacji:

Port 8000 jest portem domyślnym.

Połączenie do aplikacji

Mamy już uruchominą aplikację, do której możemy się podłączyć, więc teraz wystarczy tylko zestawić połączenie. Jeżeli używamy IntelliJ to w tym celu wchodzimy klejno Run -> Edit Configuration -> Default -> Remote. Wszystkie niezbędne flagi JVM powinniśmy mieć już uzupełnione, więc pozostaje tylko podmienić port na 8000. Konfigurację zapisujemy i za pomocą ikonki Debug podłączamy się do uruchomionej aplikacji.

Konfiguracja

Ustawiając kilka breakpointów możemy zweryfikować poprawność konfiguracji.

Okno debugowania - debugowanie

Linki

  1. Dokumentacja Maven – https://maven.apache.org/surefire/maven-surefire-plugin/examples/debugging.html
  2. Dokumentacja JetBrains – https://www.jetbrains.com/help/idea/2016.1/run-debug-configuration-remote.html?origin=old_help