Självstudier: Felsöka en Java-tillämpning som distribuerats i ett lokalt Service Fabric-kluster

Den här självstudien är del två i en serie. Du får lära dig att ansluta en fjärrfelsökare till Service Fabric-programmet med Eclipse. Dessutom får du lära dig hur du dirigerar om loggar från program som körs till en plats som passar utvecklaren.

I den här självstudieserien får du lära du dig att:

I del två i serien lär du dig hur du:

  • Felsöka Java-tillämpningar med hjälp av Eclipse
  • Omdirigera loggar till en plats som kan konfigureras

Förutsättningar

Innan du börjar den här självstudien:

  • Konfigurera din utvecklingsmiljö för Mac eller Linux. Följ anvisningarna för att installera plugin-programmet Eclipse, Gradle, Service Fabric-SDK och Service Fabric CLI (sfctl).

Ladda ned exempelprogrammet Röstning

Om du inte byggde exempelprogrammet Röstning i del ett av självstudiekursen kan du ladda ned det. Kör följande kommando i ett kommandofönster för att klona databasen för exempelappen till den lokala datorn.

git clone https://github.com/Azure-Samples/service-fabric-java-quickstart

Skapa och distribuera programmet till det lokala utvecklingsklustret.

Felsöka Java-tillämpningar med hjälp av Eclipse

  1. Öppna Eclipse IDE på datorn och klicka på Arkiv –> Importera....

  2. I popup-fönstret väljer du alternativet Allmänt –> Befintliga projekt i Arbetsyta och trycker på Nästa.

  3. I fönstret Import Projects (Importera projekt) väljer du alternativet Select root directory (Välj rotkatalogen) och katalogen Voting (Röstning). Om du har genomgått den första delen av självstudiekursen borde katalogen Voting (Röstning) redan finnas i katalogen Eclipse-workspace (Eclipse-arbetsyta).

  4. Uppdatera entryPoint.sh för tjänsten som du vill felsöka så att den startar Java-processen med fjärrstyrda felsökningsparametrar. I den här självstudien används den tillståndslösa klientdelen: Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh. Port 8001 har angetts för felsökning i det här exemplet.

    java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -jar VotingWeb.jar
    
  5. Uppdatera applikationsmanifestet genom att ange instansantalet eller replikantalet för tjänsten som felsöks till ett. Den här inställningen förhindrar konflikter kring den port som används för felsökning. För tillståndslösa tjänster kan du t.ex. ange InstanceCount="1" och för tillståndskänsliga tjänster kan du ange målet och minsta replikuppsättningsstorlek till 1 enligt följande: TargetReplicaSetSize="1" MinReplicaSetSize="1".

  6. I Eclipse IDE väljer du Kör –> Felsöka konfigurationer –> Fjärranslutet Java-program, trycker på knappen Nytt , anger egenskaperna på följande sätt och klickar på Använd.

    Name: Voting
    Project: Voting
    Connection Type: Standard
    Host: localhost
    Port: 8001
    
  7. Lägg till en brytpunkt på rad 109 i filen Voting/VotingWeb/src/statelessservice/HttpCommunicationListener.java.

  8. I Package Explorer högerklickar du på projektet Voting (Röstning) och klickar på Service Fabric –> Publicera program ...

  9. I fönstret Publish Application (Publicera program) väljer du Local.json i listrutan och klickar på Publish (Publicera).

  10. I Eclipse IDE väljer du Kör –> Felsöka konfigurationer –> Java-fjärrprogram, klickar på den röstningskonfiguration som du skapade och klickar på Felsöka.

  11. Gå till webbläsaren och få åtkomst till localhost:8080. Detta kommer automatiskt att träffa brytpunkten och Eclipse kommer att ange felsökningsperspektivet.

Nu kan du använda samma steg för att felsöka alla Service Fabric-program i Eclipse.

Omdirigera programloggar till en anpassad plats

Följande steg guidar dig igenom dirigering av programloggar från standardplatsen /var/log/syslog plats till en anpassad plats.

  1. För närvarande har program som körs i Service Fabric Linux-kluster endast stöd för att hämta en enda loggfil. Om du vill konfigurera ett program så att loggarna alltid går till /tmp/mysfapp0.0.log skapar du en fil med namnet logging.properties på följande plats Voting/VotingApplication/VotingWebPkg/Code/logging.properties och lägger till följande innehåll.

    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. Lägg till följande parameter i Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh för Java-körningskommandot:

    -Djava.util.logging.config.file=logging.properties
    

    I följande exempel visas en exempelkörning med felsökningsprogrammet kopplat, ungefär som körningen i föregående avsnitt.

    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
    

Nu har du lärt dig hur du felsöker och komma åt dina programloggar när du utvecklar Service Fabric Java-tillämpningar.

Nästa steg

I den här självstudiedelen lärde du dig att:

  • Felsöka Java-tillämpningar med hjälp av Eclipse
  • Omdirigera loggar till en plats som kan konfigureras

Gå vidare till nästa kurs: