Kurz: Ladění aplikace v Javě nasazené v místním clusteru Service Fabric
Tento kurz je druhá část série. Zjistíte, jak pro aplikaci Service Fabric připojit vzdálený ladicí program pomocí Eclipse. Kromě toho se dozvíte, jak přesměrovat protokoly ze spuštěných aplikací do umístění, které je vhodné pro vývojáře.
V této sérii kurzů se naučíte:
- Sestavení aplikace Service Fabric Reliable Services v Javě
- Nasazení a ladění aplikace v místním clusteru
- Nasazení aplikace do clusteru Azure
- Nastavit monitorování a diagnostiku aplikace
- Nastavení CI/CD
Ve druhé části této série se naučíte:
- Ladění aplikace v Javě pomocí Eclipse
- Přesměrování protokolů do konfigurovatelného umístění
Požadavky
Než začnete s tímto kurzem:
- Nastavte vývojové prostředí pro Mac nebo Linux. Postupujte podle pokynů k instalaci modulu plug-in Eclipse, Gradle, sady Service Fabric SDK a Service Fabric CLI (sfctl).
Stažení ukázkové aplikace Voting
Pokud jste nesestavili ukázkovou aplikaci Voting v první části této série kurzů, můžete si ji stáhnout. V příkazovém okně naklonujte spuštěním následujícího příkazu úložiště ukázkové aplikace do místního počítače.
git clone https://github.com/Azure-Samples/service-fabric-java-quickstart
Sestavte a nasaďte aplikaci do místního vývojového clusteru.
Ladění aplikace v Javě pomocí Eclipse
Na počítači otevřete integrované vývojové prostředí Eclipse a klikněte na Soubor –> Importovat......
V automaticky otevíraných oknech vyberte možnost Obecné –> Existující projekty do pracovního prostoru a stiskněte Další.
V okně Import Projects (Importovat projekty) zvolte možnost Select root directory (Vybrat kořenový adresář) a vyberte adresář Voting. Pokud jste postupovali podle první části této série kurzů, adresář Voting je v adresáři Eclipse-workspace.
Aktualizujte soubor entryPoint.sh služby, kterou chcete ladit, aby se proces Javy spouštěl s parametry vzdáleného ladění. V tomto kurzu se používá bezstavový front-end: Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh. Port 8001 je nastavený pro ladění v tomto příkladu.
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -jar VotingWeb.jar
Aktualizujte manifest aplikace a nastavte počet instancí nebo replik pro laděnou službu na 1. Toto nastavení zabrání konfliktům na portu, který slouží k ladění. Například pro bezstavové služby nastavte
InstanceCount="1"
a pro stavové služby nastavte cílovou a minimální velikost sady replik na 1 následujícím způsobem:TargetReplicaSetSize="1" MinReplicaSetSize="1"
.V integrovaném vývojovém prostředí Eclipse vyberte Spustit –> Konfigurace ladění –> Vzdálená aplikace Java, stiskněte tlačítko Nový , nastavte vlastnosti následujícím způsobem a klikněte na Použít.
Name: Voting Project: Voting Connection Type: Standard Host: localhost Port: 8001
Přidejte zarážku na řádek 109 souboru Voting/VotingWeb/src/statelessservice/HttpCommunicationListener.java.
V Průzkumníku balíčků klikněte pravým tlačítkem na hlasovací projekt a klikněte na Service Fabric -> Publikovat aplikaci ...
V okně Publish Application (Publikovat aplikaci) vyberte v rozevíracím seznamu soubor Local.json a klikněte na Publish (Publikovat).
V integrovaném vývojovém prostředí Eclipse vyberte Spustit –> Ladění konfigurace –> Vzdálená aplikace Java, klikněte na konfiguraci hlasování , kterou jste vytvořili, a klikněte na Ladit.
Přejděte do webového prohlížeče a přejděte na localhost:8080. Tím se automaticky dostanete na zarážku a Eclipse přejde do perspektivy ladění.
Teď můžete stejný postup použít k ladění libovolné aplikace Service Fabric v Eclipse.
Přesměrování protokolů aplikací do vlastního umístění
Následující kroky vás provedou přesměrováním protokolů aplikací z výchozího umístění /var/log/syslog do vlastního umístění.
Aplikace spuštěné v clusterech Service Fabric s Linuxem v současné době podporují pouze vyzvednutí jednoho souboru protokolu. Pokud chcete nastavit aplikaci tak, aby protokoly vždy přešly na /tmp/mysfapp0.0.log, vytvořte soubor s názvem logging.properties v následujícím umístění Voting/VotingApplication/VotingWebPkg/Code/logging.properties a přidejte následující obsah.
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
Do souboru Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh přidejte následující parametr pro příkaz ke spuštění Javy:
-Djava.util.logging.config.file=logging.properties
Následující příklad ukazuje ukázkové spuštění s připojeným ladicím programem, podobně jako provádění v předchozí části.
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
V této fázi už víte, jak při vývoji aplikací Service Fabric v Javě ladit protokoly aplikací a jak k nim přistupovat.
Další kroky
V této části kurzu jste se naučili:
- Ladění aplikace v Javě pomocí Eclipse
- Přesměrování protokolů do konfigurovatelného umístění
Přejděte k dalšímu kurzu: