pb Hibernate : Could not initialize class dbAcces.manager.HibernateUtil
Bonjour à tous,
Je développe actuellement une application utilisant hibernate/Mysql/Tomcat/Java. J'ai développé cette application sous eclipse. Elle marche correctement sur ma machine de dev, mais quand je la passe en prod, il y a une erreur lorsque j'essaye d'accéder à la base de données (via un login par exemple). Cela fait maintenant 4 jours que je suis à la recherche d'une solution, à vérifier les versions, à éplucher les forums, et rien n'y fait :(
Configuration de Dev :
Apache 2
Tomcat 6
Hibernate 3
Mysql 5.0
Java 1.6
OS : Windows Xp (je sais ...)
Configuration de Prod :
Apache 2.2.8
tomcat 6
Hibernate 3
Mysql 5.0
sun-java6-jdk
OS : Ubuntu Server 8.04 LTS
J'utilise un fichier hibernate.properties configuré comme ceci :
Code:
1 2 3 4 5 6
|
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://localhost:3306/workflowtn001
hibernate.connection.username=root
hibernate.connection.password=******* |
Je n'utilise pas de fichier hibernate.cfg.xml (j'ai essayé avec mais ca n'a pas résolut mon problème)
J'utilise les lib suivantes :
antlr-2.7.6.jar
commons-beanutils-1.8.2.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
javassist-3.9.0.GA.jar
jta-1.1.jar
mysql-connector-java-5.1.10-bin.jar
slf4j-api-1.5.8.jar
slf4j-simple-1.5.8.jar
J'utilise un war pour déployer mon application (war généré par eclipse)
Je suis confronté à deux exceptions différentes. Lorsque je viens de déployer le war, j'ai cette exception. Cette exception n'apparait qu'une seule fois.
Code:
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
|
exception
javax.servlet.ServletException: L exécution de la servlet a lancé une exception
cause mère
java.lang.ExceptionInInitializerError
dbAcces.manager.ProfilManager.authentification(ProfilManager.java:42)
control.EnterRoot.doPost(EnterRoot.java:53)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
cause mère
java.lang.RuntimeException: Problème de configuration : JDBC Driver class not found: com.mysql.jdbc.Driver
dbAcces.manager.HibernateUtil.<clinit>(HibernateUtil.java:24)
dbAcces.manager.ProfilManager.authentification(ProfilManager.java:42)
control.EnterRoot.doPost(EnterRoot.java:53)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
cause mère
org.hibernate.HibernateException: JDBC Driver class not found: com.mysql.jdbc.Driver
org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:89)
org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:137)
org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:79)
org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:425)
org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:89)
org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119)
org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115)
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339)
dbAcces.manager.HibernateUtil.<clinit>(HibernateUtil.java:22)
dbAcces.manager.ProfilManager.authentification(ProfilManager.java:42)
control.EnterRoot.doPost(EnterRoot.java:53)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
cause mère
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:169)
org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:192)
org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:84)
org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:137)
org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:79)
org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:425)
org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:89)
org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119)
org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115)
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339)
dbAcces.manager.HibernateUtil.<clinit>(HibernateUtil.java:22)
dbAcces.manager.ProfilManager.authentification(ProfilManager.java:42)
control.EnterRoot.doPost(EnterRoot.java:53)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717) |
Puis l'exception Suivante qui apparait à chaque rafraichissement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
exception
javax.servlet.ServletException: L exécution de la servlet a lancé une exception
cause mère
java.lang.NoClassDefFoundError: Could not initialize class dbAcces.manager.HibernateUtil
dbAcces.manager.ProfilManager.authentification(ProfilManager.java:42)
control.EnterRoot.doPost(EnterRoot.java:53)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717) |
Ma class HibernateUtil n'est pas dans un .jar mais c'est une classe qui fait partie de mon dossier src, qui est bien compiler et présente dans WEB-INF\classes\dbAcces\manager.
Une idée ?