无法构建 EntityManagerFactory + 找不到 JDBC 驱动程序类
Posted
技术标签:
【中文标题】无法构建 EntityManagerFactory + 找不到 JDBC 驱动程序类【英文标题】:Unable to build EntityManagerFactory + JDBC Driver class not found 【发布时间】:2013-10-18 19:43:21 【问题描述】:我有这个项目,我正在使用 hibernate、maven、gwt、JPA、Tomcat 和 spring、mysql。无论如何,我一直试图解决这个错误,但没有成功。 我已经配置了我的 mysql 连接器“mysql-connector-java” 这是我的错误:
Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: projetA] Unable to build EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:892)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
at com.pac.projetA.shared.Dto.Main.main(Main.java:14)
Caused by: org.hibernate.HibernateException: JDBC Driver class not found: org.mysql.jdbc.Driver
at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:89)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:137)
at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:51)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:91)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2163)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2159)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1383)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:883)
... 4 more
Caused by: java.lang.ClassNotFoundException: org.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:192)
at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:84)
... 12 more
enter code here
【问题讨论】:
你是如何配置jar的? 我在类路径中添加了 jar + 我在 pom.xml 中添加了依赖项 我建议你不要两者都做。 我试过了,还是不行:( 显然您的类路径设置不正确。玩弄它。 【参考方案1】:我记得你使用的是 maven。如果您的 pom.xml 中有以下条目,请确保清理并构建项目并重新启动服务器以获取对类路径的更改
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
顺便说一句,这家伙有一些很好的教程
这是一个如何使用hibernate、maven和mysql
http://www.mkyong.com/spring/maven-spring-hibernate-annotation-mysql-example/
【讨论】:
以上是关于无法构建 EntityManagerFactory + 找不到 JDBC 驱动程序类的主要内容,如果未能解决你的问题,请参考以下文章
创建 entityManagerFactory 时出错。无法构建 Hibernate SessionF.SchemaManagementException:导出标识符 [new_user] 遇到多次
如何修复'无法检索unitName null的EntityManagerFactory'
在类路径资源中定义名称为“entityManagerFactory”的 bean 创建错误
Jenkins 无法创建 entityManagerFactory