Jak uruchomić tryb debugowania z wiersza poleceń dla serwera Apache Tomcat?

84

Chcę uruchomić tryb debugowania dla mojej aplikacji. Ale muszę uruchomić tryb debugowania z wiersza polecenia. Czy to możliwe ? Czy procedura będzie się różnić w przypadku tomcat 5.5 do tomcat 6.?

Karthi
źródło
6
catalina.bat
jpda
1
możliwy duplikat Start tomcat 6 w trybie debugowania?
Makoto

Odpowiedzi:

119
W oknach
$ catalina.bat jpda start
W systemie Linux / Unix
$ catalina.sh jpda start

Więcej informacji ----> https://cwiki.apache.org/confluence/display/TOMCAT/Developing

Mohammad Adil
źródło
Dzięki, pomogło mi to skonfigurować opcję debugowania w programie startup.sh. Edycja ostatnią linię w tomcat/bin/startup.shcelu exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@". Zawsze zapominam o uruchomieniu w trybie debugowania i mogę zaoszczędzić 5 minut restartu.
TomasZ.
51

W systemie Windows najpierw ustaw zmienne:

set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket

aby uruchomić serwer w trybie debugowania:

%TOMCAT_HOME%/bin/catalina.bat jpda start

Dla uniksowych zmiennych pierwszego eksportu:

export JPDA_ADDRESS=8000
export JPDA_TRANSPORT=dt_socket

i aby uruchomić serwer w trybie debugowania:

%TOMCAT_HOME%/bin/catalina.sh jpda start
krzysiek.ste
źródło
hm tak, chociaż 8000 i dt_socket są wymienione jako domyślne w Catalina.bat, tak naprawdę musisz je ustawić tak, jak w powyższym poście: /
hello_earth
do rzeczy odpowiedź i zadziałało dla mnie +1. uratował mi dzień
Joginder Malik
25
  1. W swoim IDE utwórz konfigurację zdalnego debugowania, skonfiguruj ją dla domyślnego portu JPDA Tomcat, czyli portu 8000.

  2. Z wiersza poleceń:

    Linux:

    cd apache-tomcat/bin
    export JPDA_SUSPEND=y
    ./catalina.sh jpda run
    

    Okna:

    cd apache-tomcat\bin
    set JPDA_SUSPEND=y
    catalina.bat jpda run
    
  3. Wykonaj konfigurację zdalnego debugowania ze swojego IDE, a Tomcat zacznie działać i możesz teraz ustawić punkty przerwania w IDE.

Uwaga:

JPDA_SUSPEND=yLinia jest opcjonalna, jest przydatna, jeśli chcesz, że Apache Tomcat nie rozpocznie się jego wykonaniem aż do kroku 3 jest zakończone, przydatne jeśli chcesz zagadnień inicjalizacji aplikacji rozwiązywanie problemów.

Jaime Hablutzel
źródło
14

Krótką odpowiedzią jest dodanie następujących opcji po uruchomieniu maszyny JVM.

JAVA_OPTS=" $JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8080"
Marcel Żebrowski
źródło
Używając JAVA_OPTS -Xdebug, nie musisz uruchamiać Cataliny z jpda. W przeciwnym razie możesz skończyć z tymERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.
lnarasimhan
4

Najpierw przejdź do TOMCAT-HOME/binkatalogu.

Następnie wykonaj następujące czynności w wierszu poleceń:

catalina.bat jpda start

Jeśli serwer Tomcat działa w systemie Linux, po prostu wywołaj catalina.shprogram

catalina.sh jpda start

To samo dotyczy Tomcat 5.5 i Tomcat 6

Konstantin Yovkov
źródło
Czy możesz mi powiedzieć odpowiednik Tomcat 7.0?
RAS
3

Te instrukcje działały dla mnie na apache-tomcat-8.5.20 w systemie Mac OS 10.13.3 przy użyciu jdk1.8.0_152:

$ cd /path/to/apache-tomcat-8.5.20/bin
$ export JPDA_ADDRESS="localhost:12321"
$ ./catalina.sh jpda run

Teraz połącz się z portem 12321 z IntelliJ / Eclipse i ciesz się zdalnym debugowaniem.

user674669
źródło
2

Istnieją dwa sposoby uruchamiania programu Tomcat w trybie debugowania

  1. Korzystanie z jdpa run

  2. Korzystanie z JAVA_OPTS

Najpierw skonfiguruj środowisko. Następnie uruchom serwer za pomocą następujących poleceń.

export JPDA_ADDRESS=8000

export JPDA_TRANSPORT=dt_socket

%TOMCAT_HOME%/bin/catalina.sh jpda start

sudo catalina.sh jpda start

zapoznaj się z tym artykułem, aby uzyskać więcej informacji, wyraźnie go zdefiniuj

TharinduKetipe
źródło
1

Jeśli chcesz to zrobić za pomocą programu PowerShell w systemie Windows, to zadziałało

$ env: JPDA_SUSPEND = "y"

$ env: JPDA_TRANSPORT = "dt_socket"

/path/to/tomcat/bin/catalina.bat jpda start

MarkyMarksFunkyBunch
źródło
0

Wewnątrz catalina.bat ustaw port, na którym chcesz uruchomić debugger

if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
set JPDA_ADDRESS=9001

Następnie możesz po prostu uruchomić debugera za pomocą

catalina.bat jpda 

Teraz z Eclipse lub IDEA wybierz zdalne debugowanie i rozpocznij debugowanie, łącząc się z portem 9001.

Aniket Thakur
źródło