Bonjour, suite à des recherches sans solution depuis quelques jours, j'en viens à vous demander directement de l'aide.

J'aimerais me connecter à une base de données MySQL via JDBC mais je rencontre un problème connu.

Mon Servlet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 ...
// charger noms produits
            try {
                resultat = Jdbc.lireEnBase("SELECT * FROM PRODUIT");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } 
...
Ma classe JDBC:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
package com.ideosante;
 
import java.sql.DriverManager;
import java.sql.SQLException;
 
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Driver;
import com.mysql.jdbc.ResultSet;
import com.mysql.jdbc.Statement;
 
public class Jdbc {
 
    // Lire des données en base
    public static String lireEnBase(String requete) throws SQLException, ClassNotFoundException,
            InstantiationException, IllegalAccessException {
        String resultat = "";
        String url = "jdbc:mysql://12.39.32.55:6034/PRODUITS_IDOIN";
        String login = "login";
        String password = "password";
        Connection cn = null;
        Statement st = null;
        ResultSet rs = null;
 
        try {
            // Chargement driver
            Class driver_class = Class.forName("com.mysql.jdbc.Driver");
            Driver driver = (Driver) driver_class.newInstance();
            DriverManager.registerDriver(driver);
            // Récupération connexion
            cn = (Connection) DriverManager.getConnection(url, login, password);
            // Création statement
            st = (Statement) cn.createStatement();
            // Exécution requête
            rs = (ResultSet) st.executeQuery(requete);
            // Parcours resultset
            while (rs.next()) {
                resultat += rs.getString("PRODUIT_NAME") + ",";
            }
 
        } finally {
            // Libérer ressources de la mémoire
            if (cn != null && st != null) {
                cn.close();
                st.close();
            }
        }
        return resultat;
 
    }
}
Mon pom.xml:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
 
	<artifactId>IdeoChangeLogWeb</artifactId>
	<name>IdeoChangeLogWeb</name>
	<version>01.00-SNAPSHOT</version>
	<groupId>com.ideosante</groupId>
	<packaging>war</packaging>
 
 
	<dependencies>
	<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.3</version>
      </dependency>
   <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.0.5</version>
</dependency>
	</dependencies>
</project>
Explication: Au chargement de ma page HTML, une fonction javascript lance une requête Ajax vers ma servlet qui va utiliser JDBC pour récupérer des données en base et les renvoyer côté client pour remplir une liste déroulante.
Problème: Dès le début, Driver n'est pas reconnu:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
10:10:05,078 ERROR [stderr] (undertow task-7) java.lang.ClassNotFoundException: com.mysql.jdbc.Driver from [Module "deployment.IdeoChangeLogWeb.war:main" from Service Module Loader]
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at java.lang.Class.forName0(Native Method)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at java.lang.Class.forName(Class.java:264)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at com.ideosante.Jdbc.lireEnBase(Jdbc.java:26)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at com.ideosante.ListeProduitsServlet.doPost(ListeProduitsServlet.java:22)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
 
10:10:05,078 ERROR [stderr] (undertow task-7) 	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261)
 
10:10:05,079 ERROR [stderr] (undertow task-7) 	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247)
 
10:10:05,079 ERROR [stderr] (undertow task-7) 	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76)
 
10:10:05,079 ERROR [stderr] (undertow task-7) 	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:166)
 
10:10:05,079 ERROR [stderr] (undertow task-7) 	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:197)
 
10:10:05,079 ERROR [stderr] (undertow task-7) 	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:759)
 
10:10:05,079 ERROR [stderr] (undertow task-7) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 
10:10:05,079 ERROR [stderr] (undertow task-7) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 
10:10:05,079 ERROR [stderr] (undertow task-7) 	at java.lang.Thread.run(Thread.java:745)
Solution: J'ai trouvé quelques solutions mais aucune ne marche:
- Configurer le build path dans les options d'eclipse en ajoutant un jar extérieur ?
-> Ca ne marchait pas mais en plus on m'a dit ( car je suis en stage en entreprise) de seulement modifier les dépendences du pom.xml cité précédemment.

- Ajouter le jar du driver dans le dossier lib du serveur ou des librairies ?
-> Il n'y a pas de dossier lib, j'utilise jBoss8, et j'ai essayé de le mettre dans le répertoire où il y a d'autres jar utilisés sans résultat.

- Mettre le chemin complet du jar du driver ?
-> Je ne pense pas car il doit être accessible pour tout le monde.

J'ai trouvé également qu'il était possible que le "Module Loader" ne fonctionne pas correctement s'il doit charger des fichiers depuis différents endroits.

En bref ça n'est pas très clair tout ça, auriez vous des solutions après m'avoir lu s'il vous plaît?
En fait pour vous ça ne doit pas être très compliqué ce que je fait, juste un appel à la base de donnée pour remplir une liste, seule la structure et la méthode changent selon les systèmes/outils des programmeurs j'ai l'impression.

Je vous remercie pour votre considération et éventuellement votre aide.