Zaawansowane opcje debugowania komponentów Java Bean

Podczas zwykłych prac programistycznych nie trzeba na ogół zwracać uwagi na maszyny wirtualne używane przez poszczególne instancje edytora wizualnego. Użytkownicy zaawansowani mogą jednak konfigurować środowisko robocze tak, aby wszelkie komunikaty wysyłane do strumieni System.out lub System.err maszyny wirtualnej były zapisywane w pliku .log w katalogu .metadata obszaru roboczego.

Do wykonywania komponentów Java Bean używana jest inna maszyna wirtualna od tej, w której uruchomione jest środowisko robocze. Dla każdej instancji edytora wizualnego tworzona jest osobna maszyna wirtualna. Ścieżka klas tej maszyny wirtualnej zawiera wpisy ścieżki budowania Javy dla projektu. Jeśli ścieżka budowania zostanie zmodyfikowana w czasie, gdy otwarty jest edytor wizualny, to wszelkie otwarte edytory powinny zostać zamknięte i ponownie otwarte, aby uwzględnić zmienioną ścieżkę budowania.

Środowisko robocze można uruchomić z opcją -DEBUG wskazującą plik tekstowy:

-DEBUG file:/c:/temp/options.txt

Plik debugowania zawiera wpisy odczytywane przez edytor elementów wizualnych. Jeśli plik ten zawiera następujący wpis, to wszelkie komunikaty wysyłane do strumieni System.out i System.err będą wyświetlane na konsoli:

org.eclipse.jem.proxy/remote/debug/vmtraceout=true

Poza wyświetlaniem na konsoli komunikatów maszyny wirtualnej używanej przez edytor wizualny, możliwe jest również uruchomienie edytora w trybie debugowania i przeprowadzanie debugowania zdalnego. Ten scenariusz użycia nie jest zoptymalizowany i może ulec zmianie w przyszłych wersjach edytora wizualnego. Możliwość ta została jednak udokumentowana na wypadek, gdyby zaistniała potrzeba debugowania komponentów Java Bean na etapie projektowania. Prowadzenie debugowania zdalnego wymaga uruchomienia dwóch środowisk roboczych: jednego zawierającego debugowane komponenty Javaq bean, a drugiego skonfigurowanego do zdalnego debugowania z wykorzystaniem gniazd. Drugie środowisko robocze może być uruchomione na tym samym lub innym komputerze. Aby było możliwe debugowanie maszyny wirtualnej edytora wizualnego, plik wskazany przez parametr -DEBUG powinien zawierać następujący wpis:

org.eclipse.jem.proxy/remote/debug/debugvm=true

Przy każdym uruchamianiu maszyny wirtualnej przez edytor wizualny użytkownik będzie miał możliwość określenia, czy ma ona zostać uruchomiona w trybie debugowania.

Powyższe okno dialogowe zostanie wyświetlone, gdy klasa HelloFrame.java z projektu Test zostanie otwarta za pomocą edytora wizualnego. Jeśli klikniesz przycisk Tak lub w konsoli naciśniesz kolejno klawisze T i Enter, maszyna wirtualna zostanie uruchomiona w trybie zawieszenia z opcją -Xdebug i konektorem gniazdowym. Zostanie alokowany wolny port. Następnie zostanie wyświetlona informacja o numerze przydzielonego portu.

Kolejnym krokiem jest przyłączenie debugera zdalnego do portu o numerze 7078. Instancja środowiska roboczego, w której uruchomiony jest edytor wizualny, zostanie zawieszona na czas przyłączania zdalnego debugera, w związku z czym konieczne jest skorzystanie z debugera z innej aplikacji. Jeśli tą aplikacją jest inna instancja środowiska roboczego, debugowanie zdalne można zainicjować wybierając z menu opcję Debugowanie > Debugowanie i tworząc nową konfigurację zdalnej aplikacji Java.

Wpisz numer portu, który był wcześniej wypisywany na wyjście standardowe, czyli w tym przypadku 7078. Jeśli debuger jest uruchomiony na innym komputerze, w polu Host wpisz adres IP komputera, na którym jest uruchomione debugowane środowisko robocze. Aby rozpocząć zdalne debugowanie, kliknij przycisk Debugowanie, a następnie w konsoli wejścia standardowego debugowanego środowiska roboczego naciśnij klawisz y.

Poza monitami pytającymi o debugowanie maszyn wirtualnych używanych przez poszczególne instancje edytora wizualnego, będą również wyświetlane pytania dotyczące debugowania samego projektu:

Czy uruchomić zdalną maszynę wirtualną (Projekt (Test)-Beaninfo) w trybie debugowania? Naciśnij klawisz T lub N:

Monit ten dotyczy maszyny wirtualnej używanej do introspekcji (czyli tej, w której uruchomiona jest klasa java.beans.Introspector), co można poznać po tym, że w przeciwieństwie do maszyny wirtualnej edytora wizualnego nie jest podana nazwa pliku źródłowego Javy. Maszyna ta jest uruchamiana przy pierwszej konieczności uzyskania informacji o komponencie Java Bean należącym do projektu i pozostaje ona otwarta tak długo, jak długo otwarty jest projekt. Debugowanie takiego projektu pozwala krokowo przechodzić i analizować kod klas BeanInfo w miarę jak używane komponenty Java Bean są poddawane introspekcji. Introspekcja jest przeprowadzana raz dla każdego wystąpienia klasy komponentu Java Bean w poszczególnych projektach. Wynik jest składowany w pamięci podręcznej w celu zwiększenia wydajności. Jeśli zaistnieje potrzeba opróżnienia pamięci podręcznej informacji o występujących w projekcie obiektach typu BeanInfo, wystarczy z menu podręcznego projektu wybrać kolejno opcje Zamknij i Otwórz.

Pojęcia pokrewne
Wyjątki komponentów Java bean
Czynności pokrewne
Uruchamianie klasy elementów wizualnych Java jako komponentu Java Bean lub aplikacji
Konfigurowanie opcji uruchamiania komponentu Java bean lub aplikacji
Debugowanie komponentu Java bean elementu wizualnego lub aplikacji
Testowanie i wdrażanie apletów

(C) Copyright IBM Corporation 1999, 2004. Wszelkie prawa zastrzeżone.