Samouczek: debugowanie aplikacji Java wdrożonej w lokalnym klasterze usługi Service Fabric
Niniejszy samouczek jest drugą częścią serii. Dowiesz się, jak dołączyć debuger zdalny przy użyciu programu Eclipse dla aplikacji usługi Service Fabric. Ponadto zostanie przedstawiony sposób przekierowywania dzienników z uruchomionych aplikacji do lokalizacji wygodnej dla dewelopera.
Ta seria samouczków zawiera informacje na temat wykonywania następujących czynności:
Część druga serii zawiera informacje na temat wykonywania następujących czynności:
- Debugowanie aplikacji Java przy użyciu programu Eclipse
- Przekierowywanie dzienników do lokalizacji możliwej do skonfigurowania
Wymagania wstępne
Przed rozpoczęciem tego samouczka:
- Skonfiguruj środowisko projektowe dla komputera Mac lub systemu Linux. Postępuj zgodnie z instrukcjami, aby zainstalować wtyczkę programu Eclipse, program Gradle, zestaw Service Fabric SDK i interfejs wiersza polecenia usługi Service Fabric (sfctl).
Pobieranie przykładowej aplikacji do głosowania
Jeśli nie skompilowano przykładowej aplikacji do głosowania w pierwszej części tej serii samouczków, można ją pobrać. W oknie polecenia uruchom następujące polecenie, aby sklonować przykładowe repozytorium aplikacji na komputer lokalny.
git clone https://github.com/Azure-Samples/service-fabric-java-quickstart
Skompiluj i wdróż aplikację w lokalnym klastrze deweloperów.
Debugowanie aplikacji Java przy użyciu programu Eclipse
Otwórz środowisko IDE eclipse na maszynie i kliknij pozycję Plik —> Importuj....
W oknie podręcznym wybierz opcję Ogólne —> istniejące projekty w obszarze roboczym i naciśnij przycisk Dalej.
W oknie Importowanie projektów wybierz pozycję Wybierz katalog główny, a następnie wybierz katalog Voting. Jeśli kroki z pierwszego samouczka zostały wykonane, katalog Voting znajduje się w katalogu Eclipse-workspace.
Zaktualizuj plik entryPoint.sh usługi do debugowania, tak aby uruchamiał proces języka Java z parametrami debugowania zdalnego. W tym samouczku jest używany fronton bezstanowy: Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh. Port 8001 jest ustawiony na potrzeby debugowania w tym przykładzie.
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -jar VotingWeb.jar
Zaktualizuj manifest aplikacji, ustawiając liczbę wystąpień lub liczbę replik dla debugowanej usługi na jeden. To ustawienie pozwala uniknąć konfliktów z portem używanym podczas debugowania. Na przykład w przypadku usług bezstanowych ustaw
InstanceCount="1"
, a dla usług stanowych ustaw docelowy i minimalny rozmiar zestawu replik na 1 w następujący sposób:TargetReplicaSetSize="1" MinReplicaSetSize="1"
.W środowisku ECLIPSE IDE wybierz pozycję Uruchom —> Debuguj konfiguracje —> Zdalna aplikacja Java, naciśnij przycisk Nowy , ustaw właściwości w następujący sposób, a następnie kliknij przycisk Zastosuj.
Name: Voting Project: Voting Connection Type: Standard Host: localhost Port: 8001
Umieść punkt przerwania w wierszu 109 pliku Voting/VotingWeb/src/statelessservice/HttpCommunicationListener.java.
W Eksploratorze pakietów kliknij prawym przyciskiem myszy projekt Voting i kliknij pozycję Service Fabric —> Opublikuj aplikację...
W oknie Publikowanie aplikacji wybierz pozycję Local.json z listy rozwijanej, a następnie kliknij pozycję Publikuj.
W środowisku ECLIPSE IDE wybierz pozycję Uruchom —> Debuguj konfiguracje —> Zdalna aplikacja Java, kliknij utworzoną konfigurację głosowania i kliknij pozycję Debuguj.
Przejdź do przeglądarki internetowej i uzyskaj dostęp do hosta lokalnego:8080. Spowoduje to automatyczne trafienie do punktu przerwania, a środowisko Eclipse wprowadzi perspektywę debugowania.
Teraz możesz zastosować te same kroki, aby debugować dowolną aplikację usługi Service Fabric w środowisku Eclipse.
Przekierowywanie dzienników aplikacji do lokalizacji niestandardowej
Poniższe kroki przedstawiają sposób przekierowywania dzienników aplikacji z domyślnej lokalizacji /var/log/syslog do lokalizacji niestandardowej.
Obecnie aplikacje działające w klastrach systemu Linux usługi Service Fabric obsługują tylko pobieranie pojedynczego pliku dziennika. Aby skonfigurować aplikację tak, aby dzienniki zawsze przechodziły do folderu /tmp/mysfapp0.0.log, utwórz plik o nazwie logging.properties w następującej lokalizacji Voting/VotingApplication/VotingWebPkg/Code/logging.properties i dodaj następującą zawartość.
handlers = java.util.logging.FileHandler java.util.logging.FileHandler.level = ALL java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter # This value specifies your custom location. # You will have to ensure this path has read and write access by the process running the SF Application java.util.logging.FileHandler.pattern = /tmp/mysfapp0.0.log
Dodaj następujący parametr w pliku Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh na potrzeby polecenia wykonywania kodu Java:
-Djava.util.logging.config.file=logging.properties
W poniższym przykładzie pokazano przykładowe wykonanie z dołączonym debugerem podobnym do wykonania w poprzedniej sekcji.
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -Djava.util.logging.config.file=logging.properties -jar VotingWeb.jar
Na tym etapie zapoznano się ze sposobem debugowania i uzyskiwać dostęp do dzienników aplikacji podczas tworzenia aplikacji Java w usłudze Service Fabric.
Następne kroki
W tej części samouczka zawarto informacje na temat wykonywania następujących czynności:
- Debugowanie aplikacji Java przy użyciu programu Eclipse
- Przekierowywanie dzienników do lokalizacji możliwej do skonfigurowania
Przejdź do następnego samouczka: