Ręczne uruchamianie serwera w trybie debug może się także przydać przy debugowaniu serwera uruchomionego na innym komputerze, niż komputer programisty. Instrukcję jak to zrobić, na przykładzie Eclipse 3.4.0 i serwera JBoss 4.0.5.GA przedstawiam poniżej.
W przykładzie, korzystam z aplikacji akwarium, którą od czasu do czasu posiłkuję się na blogu.
Najpierw zajmę się JBossem. W katalogu bin znajduje się plik run.sh. Kopiuję go na debug.sh. Na początku pliku dodaję:
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
To polecenie modyfikuje zmienną JAVA_OPTS, której zawartość dalej w skrypcie staje się parametrami uruchomieniowymi wirtualnej maszyny (JVM) z którą wystartuje serwer. Dobrze jest zapamiętać wartość wpisaną jako address i ustawić suspend=n. W przeciwnym wypadku JBoss nie uruchomi się dopóki nie podłączymy się do niego z IDE.
W JBossie to już wszystko. Czas na Eclipse.
W klasie AquariumManagerImpl ustawiam pułapkę, klikając na lewym marginesie.
Tutaj zatrzyma się aplikacja aby umożliwić śledzenie jej wykonania krok po kroku.
Następnie wybieram z menu Debug pozycję Debug Configurations....
Wybieram z listy po lewej stronie Remote Java Application podając odpowiedni port i nazwę.
Klikam Apply i Debug. Wyskoczy błąd, ponieważ serwer nie jest jeszcze włączony.
Czas zatem go uruchomić, tym razem nie poleceniem
./run.sh
a
./debug.sh
JBoss powienien wypluć z siebie:
Następnie, w Eclipse z menu Debug wybieram pozycję aquarium - debug.
Wchodzę na stronę:
http://localhost:8080/aquarium/info.htm.
Strona się nie ładuje, przechodzę do Eclipse. Zatwierdzam zmianę perspektywy i już mogę przechodzić kod aplikacji linijka po linijce za pomocą klawisza F6
F8 natomiast wznawia dalszy bieg programu.
Brak komentarzy:
Prześlij komentarz