Samouczek: debugowanie aplikacji Java wdrożonej w lokalnym klasterze usługi Service Fabric

Ten 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 utworzono przykładowej aplikacji Voting w części jednej z tej serii samouczków, możesz 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

  1. Otwórz środowisko IDE środowiska Eclipse na maszynie i kliknij pozycję Plik —> Importuj....

  2. W oknie podręcznym wybierz opcję Ogólne —> istniejące projekty w obszarze roboczym i naciśnij przycisk Dalej.

  3. 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.

  4. 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 został 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
    
  5. 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".

  6. W środowisku IDE środowiska Eclipse wybierz pozycję Uruchom —> konfiguracje debugowania —> Zdalna aplikacja Java, naciśnij przycisk Nowy , ustaw właściwości w następujący sposób i kliknij przycisk Zastosuj.

    Name: Voting
    Project: Voting
    Connection Type: Standard
    Host: localhost
    Port: 8001
    
  7. Umieść punkt przerwania w wierszu 109 pliku Voting/VotingWeb/src/statelessservice/HttpCommunicationListener.java.

  8. W Eksploratorze pakietów kliknij prawym przyciskiem myszy projekt Voting i kliknij pozycję Service Fabric —> Opublikuj aplikację ...

  9. W oknie Publikowanie aplikacji wybierz pozycję Local.json z listy rozwijanej, a następnie kliknij pozycję Publikuj.

  10. W środowisku IDE środowiska Eclipse wybierz pozycję Uruchom — Debuguj konfiguracje —>> Zdalna aplikacja Java, kliknij utworzoną konfigurację głosowania, a następnie kliknij pozycję Debuguj.

  11. Przejdź do przeglądarki internetowej i uzyskaj dostęp do hosta lokalnego:8080. Spowoduje to automatyczne trafienie do punktu przerwania, a środowisko Eclipse przejdzie do perspektywy 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.

  1. Obecnie aplikacje działające w klastrach usługi Service Fabric z systemem Linux 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
    
  2. 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: