1.5 Liaison Wildfly et MySQL - dosseggegw1/AMT_projet Wiki

Configuration du serveur Wildfly

Installation du connecteur MySQL, on prend la version 8.0.17 pour qu'elle soit compatible avec notre plugin maven.

cd /opt
sudo wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.17.tar.gz

On peut l'extraire directement afin de récupérer le .jar:

sudo tar -xvzf mysql-connector-java-8.0.17.tar.gz

Setup du MySQL JDBC Driver en tant que module Wildfly:

sudo mkdir -p /opt/wildfly-22.0.0.Final/modules/system/layers/base/com/mysql/main

!! Le chemin de wildfly dépend de votre propre installation !!

On copie le connecteur vers /opt/wildfly-22.0.0.Final/modules/system/layers/base/com/mysql/main.

On crée maintenant un fichier module.xml qui nous permet de configurer le driver en tant que module wildfly:

cd wildfly-22.0.0.Final/modules/system/layers/base/com/mysql/main
sudo nano module.xml

Ajoutez ce code dans le fichier:

<module xmlns="urn:jboss:module:1.5" name="com.mysql">
    <resources>
        <resource-root path="mysql-connector-java-8.0.17.jar" />
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

À présent, il faut redémarrer le service WildFly:

sudo systemctl restart wildfly

On va ajouter la configuration de la base de données au fichier de configuration standalone.xml.Pour ça on va utiliser le client JBoss afin de faciliter l'édition du fichier:

cd /opt/wildfly-22.0.0.Final/bin/
./jboss-cli.sh

Le script vous demandera de vous connecter, vous pouvez entrer connect et ils vous demandera de vous logguer, c'est l'identifiant créé pour la console d'administration.

Une fois loggué, entrez cette commande:

data-source add --jndi-name=java:jboss/datasources/MySQLDS --name=MySQLDS --enabled=true --use-java-context=true --connection-url=jdbc:mysql://localhost:3306/AMT_SQL --driver-name=mysql --min-pool-size=2 --max-pool-size=10 --user-name=root --password=root

Et également:

/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql)

Vous devriez voir ce résultat dans le fichier standalone.xml:

<datasource jndi-name="java:jboss/datasources/MySQLDS" pool-name="MySQLDS" enabled="true" use-java-context="true">
  <connection-url>jdbc:mysql://localhost:3306/AMT_SQL</connection-url>
  <driver>mysql</driver>
  <pool>
    <min-pool-size>2</min-pool-size>
    <max-pool-size>10</max-pool-size>
  </pool>
  <security>
    <user-name>root</user-name>
    <password>root</password>
  </security>
</datasource>
<drivers>
  <driver name="mysql" module="com.mysql">
  <driver-class>com.mysql.jdbc.Driver</driver-class>
</driver>

Configuration MySQL en ajoutant la base de données

Premièrement, vous vous connectez en tant que root avec le mot de passe root et l'host 127.0.0.1:

mysql -u root -h 127.0.0.1 -p

Une fois connecté vous pouvez afficher toutes les bases de données:

SHOW DATABASES;

On peut ajouter la base de données du projet:

CREATE DATABASE IF NOT EXISTS AMT_SQL;

Et lui ajouter des tables. Pour cela, je vous laisse copier-coller la base de données qui se trouve dans la racine du projet.:

CREATE TABLE User (....);

Une fois créé (vérifier avec la commande SHOW DATABASES;), on peut utiliser la base de données:

USE DATABASE AMT_SQL;

Une fois terminé, on peut afficher toutes nos tables pour vérifier que tout soit correct:

SHOW TABLES;

On peut voir une table en détail avec (table USER par exemple):

DESC USER;

Avec tout cela, votre base de données devrait être bien liée ! S'il y a des soucis, assurer vous que les deux services tournent bien:

sudo systemctl status mysql
sudo systemctl status wildfly

Pour les redémarrer s'ils sont inactifs:

sudo systemctl restart mysql
sudo systemctl restart wildfly

Test de l'application

  1. Premièrement, après avoir fait un git pull sur la branche develop, on effectue mvn clean install package dans le projet
  2. On peut se connecter sur la console d'administration du serveur applicatif via le port 9990
  3. On récupère le fichier shop.war qu'on déploie sur le serveur
  4. On se rend sur la page localhost:8080/shop/hello-database
  5. Normalement une adresse e-mail devrait être affichée !