Esercizio - Accedere agli strumenti di amministrazione e ai log applicazioni di JBoss EAP
In questo esercizio si accede agli strumenti di amministrazione di JBoss e si trasmetteno i log dell'applicazione.
Impostare le variabili di ambiente
Per questo esercizio sono necessarie alcune variabili di ambiente degli esercizi precedenti. Se si usa la stessa finestra Bash, queste variabili devono essere ancora presenti. Se le variabili non sono più disponibili, usare i comandi seguenti per ricrearli. Assicurarsi di sostituire i <segnaposto ...> con i propri valori e usare gli stessi valori usati in precedenza.
export RESOURCE_GROUP_NAME=<resource-group>
export WEB_APP_NAME=<app-name>
Creare un tunnel TCP
Per accedere al server remoto, creare un tunnel TCP tra il server remoto e il computer locale usando il comando seguente:
az webapp create-remote-connection \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${WEB_APP_NAME}
L'output contiene il numero di porta, il nome utente e la password del tunnel TCP. Assicurarsi di salvare queste informazioni per usarle in un secondo momento.
Accedere tramite SSH e il tunnel TCP
Per accedere al server usando SSH e un tunnel TCP, seguire questa procedura:
Aprire un nuovo terminale di comando.
Accedere al server usando i comandi seguenti. Assicurarsi di sostituire il
<port-number>segnaposto con il numero di porta recuperato nella sezione precedente.export PORT_NUMBER=<port-number> ssh root@127.0.0.1 -L 9990:localhost:9990 -p $PORT_NUMBERSuggerimento
Se si vuole accedere alla console Web di amministrazione di JBoss EAP, specificare l'opzione
-L 9990:localhost:9990. Accedere quindi alla console Web JBoss all'indirizzohttp://localhost:9990/console. Se non è necessario accedere alla console Web JBoss, è possibile rimuovere l'opzione-L.L'output seguente è tipico:
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.
Eseguire lo strumento CLI di JBoss
Dopo aver eseguito l'accesso al server remoto, è possibile eseguire lo strumento dell'interfaccia della riga di comando di amministrazione di JBoss EAP, /opt/eap/bin/jboss-cli.sh, seguendo questa procedura:
Connettersi a JBoss EAP usando il comando seguente:
/opt/eap/bin/jboss-cli.sh --connectL'output seguente è tipico:
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.Dopo la connessione al server JBoss EAP, usare il comando seguente al prompt di JBoss per ottenere le informazioni sul server JBoss:
product-infoL'output seguente è tipico:
{ "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" } }}] }Usare il comando seguente per elencare tutte le applicazioni distribuite:
ls deploymentL'output seguente è tipico:
ROOT.warTestare la connessione al database usando il comando seguente:
/subsystem=datasources/data-source="JPAWorldDataSourceDS":test-connection-in-poolL'output seguente è tipico:
{ "outcome" => "success", "result" => [true] }Uscire dall'interfaccia della riga di comando di JBoss EAP usando il comando seguente:
exit
Accedere alla console Web di amministrazione di JBoss EAP
Accedere quindi alla console Web di amministrazione di JBoss seguendo questa procedura:
Creare un utente amministratore e una password per l'autenticazione usando il comando seguente:
/opt/eap/bin/add-user.sh -u admin -p admin -r ManagementRealmL'output seguente è tipico:
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'Accedere alla console Web da un Web browser nell'ambiente locale usando
http://127.0.0.1:9990/console.Nella finestra di dialogo di autenticazione accedere con il nome utente e la password creati in precedenza.
Dopo aver eseguito l'accesso alla console Web, viene visualizzata la schermata seguente:
Verificare di aver creato l'origine dati selezionando Configurazioni>sottosistemi>origini dati e driver>origini dati.
È anche possibile confermare gli endpoint RESTful dell'applicazione selezionando Runtime><your-system>>JAX-RS><your-application>.
Avvertimento
Se si accede direttamente al server remoto tramite il comando dell'interfaccia della riga di comando di JBoss o la console Web e si aggiunge o aggiorna una configurazione, la configurazione viene cancellata ed eliminata dopo il riavvio dell'istanza del servizio app di Azure. Per rendere persistente la configurazione, usare uno script di avvio, ad esempio lo script createMySQLDataSource.sh usato in un'unità precedente.
Aprire un flusso di log
Accedere ai log usando il comando seguente:
az webapp log tail \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${WEB_APP_NAME}
L'output seguente è tipico:
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]
Esercizio di riepilogo
In questa unità si è appreso come configurare e distribuire un'applicazione Jakarta EE 10 in JBoss EAP nel servizio app di Azure. È stato quindi usato un DataSource oggetto per connettere MySQL a JBoss EAP in uno script di avvio.
Si è anche appreso come accedere al server remoto dall'interfaccia della riga di comando e dall'interfaccia utente grafica usando un tunnel TCP. Infine, è stato eseguito l'accesso al file di log da un computer locale.



