Bonsoir,

Je dois développer un projet pour l'iut en utilisant les technologies Maven et Spring + Hibernate/JPA. Seulement, je rencontre pas mal de soucis concernant la dépendance c3p0 (laquelle j'utilise pour déclare un bean de type ComboPooledDataSource).

Je crée un test permettant de faire 2-3 opérations simples sur la base de données mais le test plante à chaque coup. En effet, la configuration Spring qu'il lance avant tourne en boucle sur cette erreur :

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
mars 22, 2012 9:46:09 PM com.mchange.v2.c3p0.DriverManagerDataSource ensureDriverLoaded
Avertissement: Could not load driverClass "com.mysql.jdbc.Driver"
java.lang.ClassNotFoundException: "com.mysql.jdbc.Driver"
	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:186)
	at com.mchange.v2.c3p0.DriverManagerDataSource.ensureDriverLoaded(DriverManagerDataSource.java:100)
	at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:132)
	at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
	at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
	at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
	at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
	at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
	at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
	at com.mchange.v2.async.ThreadPerTaskAsynchronousRunner$TaskThread.run(ThreadPerTaskAsynchronousRunner.java:255)
Je précise que j'ai ajouté la dépendance MySQL et que le jar est bien présent dans le classpath. De plus, lorsque que je teste le chargement du Driver seul avec la méthode Class.forName("com.mysql.jdbc.Driver"); je n'ai pas de problème.

Voici le code déclarant le bean datasource dans la configuration Spring

dataContext.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
		  p:driverClass="${jdbc.driverClass}" 
		  p:jdbcUrl="${jdbc.url}" 
		  p:user="${jdbc.user}" 
		  p:password="${jdbc.password}" 
 
		  p:acquireIncrement="5" 
		  p:idleConnectionTestPeriod="60" 
		  p:minPoolSize="10" 
		  p:maxPoolSize="100" 
		  p:maxStatements="50" 
	/>
${jdbc.driverClass} = com.mysql.jdbc.Driver

Mes recherches sur internet n'ont rien donné de concret jusque là, j'espère que vous pouvez m'aider
Merci beaucoup.

Je posterai d'autres code si vous le souhaitez pour un aperçu plus clair.


EDIT : j'ai résolu mon problème, il se basait sur le fichier properties et une dépendance manquante.