Exercice – Accéder aux outils d’administration et aux journaux des applications JBoss EAP
Dans cet exercice, vous accédez aux outils d’administration JBoss et diffusez en continu les journaux d’activité de l’application.
Configurer des variables d’environnement
Pour cet exercice, vous avez besoin de certaines variables d’environnement des exercices précédents. Si vous utilisez la même fenêtre Bash, ces variables doivent toujours exister. Si les variables ne sont plus disponibles, utilisez les commandes suivantes pour les recréer. Veillez à remplacer les <espaces réservés ...> par vos propres valeurs et utilisez les mêmes valeurs que celles que vous avez utilisées précédemment.
export RESOURCE_GROUP_NAME=<resource-group>
export WEB_APP_NAME=<app-name>
Créer un tunnel TCP
Pour accéder au serveur distant, créez un tunnel TCP entre votre serveur distant et votre ordinateur local à l’aide de la commande suivante :
az webapp create-remote-connection \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${WEB_APP_NAME}
La sortie contient le numéro de port du tunnel TCP, le nom d’utilisateur et le mot de passe. Veillez à conserver ces informations pour une utilisation ultérieure.
Se connecter à l’aide de SSH et du tunnel TCP
Pour vous connecter au serveur à l’aide de SSH et d’un tunnel TCP, procédez comme suit :
Ouvrez un nouveau terminal de commandes.
Connectez-vous au serveur à l’aide des commandes suivantes. Veillez à remplacer l’espace
<port-number>réservé par le numéro de port que vous avez récupéré dans la section précédente.export PORT_NUMBER=<port-number> ssh root@127.0.0.1 -L 9990:localhost:9990 -p $PORT_NUMBERConseil / Astuce
Si vous souhaitez accéder à la console web d’administration JBoss EAP, spécifiez l’option
-L 9990:localhost:9990. Accédez ensuite à la console web JBoss à l’adressehttp://localhost:9990/console. Si vous n’avez pas besoin de vous connecter à la console web JBoss, vous pouvez supprimer l’option-L.La sortie suivante est classique :
ssh root@127.0.0.1 -L 9990:localhost:9990 -p 65171 root@127.0.0.1's password: Last login: Tue Feb 25 07:44:49 2025 from 169.254.129.2 _|_| _| _| _|_|_|_| _| _| _| _|_| _|_| _|_|_|_| _| _| _| _|_| _|_|_|_| _| _| _| _| _| _| _| _| _| _|_|_|_| _|_|_| _| _|_|_| J A V A O N A P P S E R V I C E Documentation: https://aka.ms/appservice **NOTE**: No files or system changes outside of /home will persist beyond your application's current session. /home is your application's persistent storage and is shared across all the server instances.
Exécuter l’outil CLI JBoss
Après vous être connecté au serveur distant, vous pouvez exécuter l’outil CLI administrateur JBoss EAP, /opt/eap/bin/jboss-cli.sh, en procédant comme suit :
Connectez-vous à JBoss EAP à l’aide de la commande suivante :
/opt/eap/bin/jboss-cli.sh --connectLa sortie suivante est classique :
OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.Après vous être connecté au serveur JBoss EAP, utilisez la commande suivante à l’invite JBoss pour récupérer des informations sur le serveur JBoss :
product-infoLa sortie suivante est classique :
{ "outcome" => "success", "result" => [{"summary" => { "host-name" => "jakartaee-aaaabbbb", "instance-identifier" => "aaaaaaaa-1111-bbbb-2222-cccccccccccc", "product-name" => "JBoss EAP", "product-version" => "8.0 Update 4.1", "product-community-identifier" => "Product", "product-home" => "/opt/eap", "standalone-or-domain-identifier" => "STANDALONE_SERVER", "host-operating-system" => "Ubuntu 22.04.5 LTS", "host-cpu" => { "host-cpu-arch" => "amd64", "host-core-count" => 2 }, "jvm" => { "name" => "OpenJDK 64-Bit Server VM", "java-version" => "17", "jvm-version" => "17.0.13", "jvm-vendor" => "Microsoft", "java-home" => "/usr/lib/jvm/msopenjdk-17-amd64" } }}] }Utilisez la commande suivante pour répertorier toutes les applications déployées :
ls deploymentLa sortie suivante est classique :
ROOT.warTestez la connexion de base de données à l’aide de la commande suivante :
/subsystem=datasources/data-source="JPAWorldDataSourceDS":test-connection-in-poolLa sortie suivante est classique :
{ "outcome" => "success", "result" => [true] }Quittez l’interface CLI JBoss EAP à l’aide de la commande suivante :
exit
Accéder à la console web d’administration JBoss EAP
Ensuite, accédez à la console web d’administration JBoss en procédant comme suit :
Créez un utilisateur administrateur et un mot de passe pour l’authentification à l’aide de la commande suivante :
/opt/eap/bin/add-user.sh -u admin -p admin -r ManagementRealmLa sortie suivante est classique :
Picked up JAVA_TOOL_OPTIONS: -Xmx5480M -Djava.net.preferIPv4Stack=true Updated user 'admin' to file '/opt/eap/standalone/configuration/mgmt-users.properties' Updated user 'admin' to file '/opt/eap/domain/configuration/mgmt-users.properties'Accédez à la console web à partir d’un navigateur web dans votre environnement local à l’aide de
http://127.0.0.1:9990/console.Dans la boîte de dialogue d’authentification, connectez-vous avec le nom d’utilisateur et le mot de passe créés précédemment.
Une fois connecté à la console web, l’écran suivant s’affiche :
Vérifiez que vous avez créé la source de données en sélectionnant Configuration>Sous-systèmes>Datasources & Drivers>Datasources.
Vous pouvez également confirmer les points de terminaison RESTful de votre application en sélectionnant Runtime><your-system>>JAX-RS><your-application>.
Avertissement
Si vous accédez directement au serveur distant via la commande CLI JBoss ou la console web et ajoutez ou mettez à jour une configuration, la configuration est effacée et supprimée une fois l’instance Azure App Service redémarrée. Pour conserver la configuration, utilisez un script de démarrage tel que le script createMySQLDataSource.sh utilisé dans une unité précédente.
Ouvrir un flux de journal
Accédez aux journaux à l’aide de la commande suivante :
az webapp log tail \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${WEB_APP_NAME}
La sortie suivante est classique :
2025-02-25T06:58:11.5107300Z Waiting for main process to exit. GLOBAL_PID_MAIN=123
2025-02-25T06:58:11.5109525Z Waiting for GLOBAL_PID_MAIN == 123
2025-02-25T06:58:12.7891598Z 2025-02-25 06:58:12,786 WARN [org.apache.activemq.artemis.core.server.impl.FileLockNodeManager] (Thread-2 (ActiveMQ-scheduled-threads)) Lost the lock according to the monitor, notifying listeners
2025-02-25T06:58:14.3783443Z 2025-02-25 06:58:14,377 INFO [org.jboss.as.jpa] (MSC service thread 1-2) WFLYJPA0002: Read persistence.xml for JPAWorldDatasourcePU
2025-02-25T06:58:14.7548991Z 2025-02-25 06:58:14,752 INFO [org.jipijapa] (MSC service thread 1-3) JIPIORMV6020260: Second level cache enabled for ROOT.war#JPAWorldDatasourcePU
2025-02-25T06:58:14.7971763Z 2025-02-25 06:58:14,796 WARN [org.apache.activemq.artemis.core.server.impl.FileLockNodeManager] (Thread-2 (ActiveMQ-scheduled-threads)) Lost the lock according to the monitor, notifying listeners
2025-02-25T06:58:14.9371057Z 2025-02-25 06:58:14,924 INFO [org.jboss.weld.deployer] (MSC service thread 1-4) WFLYWELD0003: Processing weld deployment ROOT.war
2025-02-25T06:58:15.2875956Z 2025-02-25 06:58:15,280 INFO [org.hibernate.validator.internal.util.Version] (MSC service thread 1-4) HV000001: Hibernate Validator 8.0.1.Final-redhat-00001
2025-02-25T06:58:16.0075988Z 2025-02-25 06:58:16,003 INFO [org.infinispan.CONTAINER] (ServerService Thread Pool -- 78) ISPN000556: Starting user marshaller 'org.wildfly.clustering.infinispan.marshalling.jboss.JBossMarshaller'
2025-02-25T06:58:16.0534913Z 2025-02-25 06:58:16,048 INFO [org.jipijapa] (MSC service thread 1-1) JIPIORMV6020260: Second level cache enabled for ROOT.war#JPAWorldDatasourcePU
2025-02-25T06:58:16.1970192Z 2025-02-25 06:58:16,192 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-1) WFLYJCA0005: Deploying non-JDBC-compliant driver class com.mysql.cj.jdbc.Driver (version 9.2)
2025-02-25T06:58:16.2695781Z 2025-02-25 06:58:16,265 INFO [org.jboss.weld.Version] (MSC service thread 1-1) WELD-000900: 5.1.2 (redhat)
2025-02-25T06:58:16.4228682Z 2025-02-25 06:58:16,421 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-3) WFLYJCA0018: Started Driver service with driver-name = ROOT.war_com.mysql.cj.jdbc.Driver_9_2
2025-02-25T06:58:16.4261069Z 2025-02-25 06:58:16,425 INFO [org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer] (MSC service thread 1-3) IJ020018: Enabling <validate-on-match> for java:jboss/datasources/JPAWorldDataSource
2025-02-25T06:58:16.4349571Z 2025-02-25 06:58:16,428 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-3) WFLYJCA0001: Bound data source [java:jboss/datasources/JPAWorldDataSource]
2025-02-25T06:58:16.7892296Z 2025-02-25 06:58:16,787 INFO [org.jboss.as.jpa] (ServerService Thread Pool -- 78) WFLYJPA0010: Starting Persistence Unit (phase 1 of 2) Service 'ROOT.war#JPAWorldDatasourcePU'
2025-02-25T06:58:16.8070373Z 2025-02-25 06:58:16,805 INFO [org.hibernate.jpa.internal.util.LogHelper] (ServerService Thread Pool -- 78) HHH000204: Processing PersistenceUnitInfo [name: JPAWorldDatasourcePU]
Résumé de l’exercice
Dans cette unité, vous avez appris à configurer et déployer une application Jakarta EE 10 sur JBoss EAP sur Azure App Service. Ensuite, vous avez utilisé un DataSource objet pour connecter MySQL à JBoss EAP dans un script de démarrage.
Vous avez également appris à accéder au serveur distant à partir de l’interface CLI et de l’interface utilisateur graphique (GUI) à l’aide d’un tunnel TCP. Enfin, vous avez accédé au fichier journal à partir d’un ordinateur local.



