Partager via


Didacticiel : Déboguer une application Java déployée sur un cluster Service Fabric local

Ce tutoriel est le deuxième d’une série. Vous découvrez comment attacher un débogueur distant à l’aide d’Eclipse pour l’application Service Fabric. En outre, vous apprenez à rediriger les journaux des applications en cours d’exécution vers un emplacement pratique pour le développeur.

Cette série de tutoriels vous montre comment effectuer les opérations suivantes :

Dans ce deuxième volet, vous apprenez à :

  • Déboguer une application Java à l’aide d’Eclipse
  • Rediriger les journaux d’activité vers un emplacement configurable

Prérequis

Avant de commencer ce tutoriel :

  • Configurez votre environnement de développement pour Mac ou Linux. Suivez les instructions pour installer le plug-in Eclipse, Gradle, le Kit de développement logiciel (SDK) Service Fabric et l’interface CLI Service Fabric (sfctl).

Télécharger l’exemple d’application de vote

Si vous n’avez pas généré l’exemple d’application de vote lors de la première partie de cette série de didacticiels, vous pouvez le télécharger. Dans une fenêtre Commande, exécutez la commande suivante pour cloner le référentiel de l’exemple d’application sur votre ordinateur local.

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

Générez et déployez l’application sur le cluster de développement local.

Déboguer une application Java à l’aide d’Eclipse

  1. Ouvrez l’IDE Eclipse sur votre ordinateur, puis cliquez sur File (Fichier) -> Import (Importer)...

  2. Dans la fenêtre contextuelle, sélectionnez l’option General (Général) -> Existing Projects into Workspace (Projets existants dans l’espace de travail), puis appuyez sur Next (Suivant).

  3. Dans la fenêtre d’importation des projets, choisissez l’option Select root directory (Sélectionner le répertoire racine), puis sélectionnez le répertoire Voting. Si vous avez suivi la série de didacticiels, le répertoire Voting se trouve dans le répertoire Eclipse-workspace.

  4. Mettez à jour entryPoint.sh du service que vous souhaitez déboguer, afin qu’il démarre le processus Java avec les paramètres de débogage à distance. Pour ce didacticiel, le serveur frontal sans état est utilisé : Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh. Le port 8001 est défini pour le débogage dans cet exemple.

    java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -jar VotingWeb.jar
    
  5. Mettez à jour le manifeste de l’application en définissant le nombre d’instances ou le nombre de réplicas pour le service en cours de débogage sur 1. Ce paramètre évite les conflits pour le port utilisé pour le débogage. Par exemple, pour les services sans état, définissez InstanceCount="1" et pour les services avec état, définissez les tailles cible et de jeu de réplicas minimales sur 1 comme suit : TargetReplicaSetSize="1" MinReplicaSetSize="1".

  6. Dans l’IDE Eclipse, sélectionnez Run (Exécuter) -> Debug Configurations (Déboguer des configurations) -> Remote Java Application (Application Java distante), appuyez sur le bouton New (Nouveau), définissez les propriétés comme suit, puis cliquez sur Apply (Appliquer).

    Name: Voting
    Project: Voting
    Connection Type: Standard
    Host: localhost
    Port: 8001
    
  7. Placez un point d’arrêt sur la ligne 109 du fichier Voting/VotingWeb/src/statelessservice/HttpCommunicationListener.java.

  8. Dans l’Explorateur de packages, cliquez avec le bouton droit sur le projet Voting, puis cliquez sur Service Fabric (Service Fabric) -> Publish Application (Publier une application)...

  9. Dans la fenêtre Publish Application (Publier une application), sélectionnez Local.json dans la liste déroulante, puis cliquez sur Publier.

  10. Dans l’IDE Eclipse, sélectionnez Run (Exécuter) -> Debug Configurations (Déboguer des configurations) -> Remote Java Application (Application Java distante), cliquez sur la configuration Voting que vous avez créée, puis sur Debug (Déboguer).

  11. Accédez à votre navigateur web puis à localhost : 8080. Vous atteignez automatiquement le point d’arrêt et Eclipse ouvre la perspective Déboguer.

Vous pouvez maintenant appliquer ces mêmes étapes pour déboguer une application Service Fabric dans Eclipse.

Rediriger les journaux des applications vers un emplacement personnalisé

Les étapes suivantes décrivent comment rediriger les journaux des applications de l’emplacement /var/log/syslog par défaut vers un emplacement personnalisé.

  1. Actuellement, les applications s’exécutant dans les clusters Linux Service Fabric prennent uniquement en charge la sélection d’un seul fichier journal. Pour configurer une application de telle sorte que les journaux aillent toujours à /tmp/mysfapp0.0.log, créez un fichier nommé logging.properties à l’emplacement Voting/VotingApplication/VotingWebPkg/Code/logging.properties, pis ajoutez le contenu ci-après.

    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. Ajoutez le paramètre suivant dans Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh pour la commande d’exécution Java :

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

    L’exemple suivant montre un exemple d’exécution avec le débogueur attaché, similaire à l’exécution dans la section précédente.

    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
    

À ce stade, vous avez appris comment déboguer et accéder aux journaux des applications lors du développement de vos applications Java Service Fabric.

Étapes suivantes

Dans cette partie du tutoriel, vous avez appris à :

  • Déboguer une application Java à l’aide d’Eclipse
  • Rediriger les journaux d’activité vers un emplacement configurable

Passez au tutoriel suivant :