配置错误。找不到类 [com.mysql.cj.jdbc.Driver]。 EclipseLink,MySQL 驱动程序
Posted
技术标签:
【中文标题】配置错误。找不到类 [com.mysql.cj.jdbc.Driver]。 EclipseLink,MySQL 驱动程序【英文标题】:Configuration error. Class [com.mysql.cj.jdbc.Driver] not found. EclipseLink, MySQL driver 【发布时间】:2018-06-24 20:49:19 【问题描述】:我正在尝试使用 EclipseLink 学习 JPA。我使用 mysql 作为我的数据库。我已经添加了所需的所有依赖项,下面是我的 pom.xml
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.7.0</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
<scope>runtime</scope>
</dependency>
</dependencies>
问题是,即使 maven 已经下载了 mysql jdbc 连接器所需的所有 jar,我仍然收到异常描述:配置错误。找不到类 [com.mysql.cj.jdbc.Driver]。以下是我正在使用的版本: 1.Mysql JDBC连接器:8.0.11 2.Eclipse链接:2.7.1 3. JPA:2.2.0
附件是我的 Maven 依赖项 jar 的屏幕截图。
我尝试了 *** 上其他线程的所有建议,但无法解决问题。
提前感谢您的帮助和感谢!
下面是我的persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="Eclipselink_JPA" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpadb"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="root"/>
<property name="eclipselink.logging.level" value="FINE"/>
<property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
另外,添加错误堆栈跟踪:
[EL Fine]: server: 2018-06-24 17:33:10.619--Thread(Thread[main,5,main])--配置的服务器平台:org.eclipse.persistence.platform.server.NoServerPlatform [EL信息]:2018-06-24 17:33:11.065--ServerSession(1101598632)--Thread(Thread[main,5,main])--EclipseLink,版本:Eclipse Persistence Services - 2.6.5.v20170607- b3d05bd [EL Severe]: ejb: 2018-06-24 17:33:11.068--ServerSession(1101598632)--Thread(Thread[main,5,main])--异常 [EclipseLink-4003] (Eclipse Persistence Services - 2.6 .5.v20170607-b3d05bd):org.eclipse.persistence.exceptions.DatabaseException 异常描述:配置错误。找不到类 [com.mysql.cj.jdbc.Driver]。 线程“主”javax.persistence.PersistenceException 中的异常:异常 [EclipseLink-4003] (Eclipse Persistence Services - 2.6.5.v20170607-b3d05bd):org.eclipse.persistence.exceptions.DatabaseException 异常描述:配置错误。找不到类 [com.mysql.cj.jdbc.Driver]。 在 org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:818) 在 org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:207) 在 org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:307) 在 org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:337) 在 org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:303) 在 practice.JPA.persistence.App.main(App.java:17) 原因:异常 [EclipseLink-4003] (Eclipse Persistence Services - 2.6.5.v20170607-b3d05bd): org.eclipse.persistence.exceptions.DatabaseException 异常描述:配置错误。找不到类 [com.mysql.cj.jdbc.Driver]。 在 org.eclipse.persistence.exceptions.DatabaseException.configurationErrorClassNotFound(DatabaseException.java:89) 在 org.eclipse.persistence.sessions.DefaultConnector.loadDriverClass(DefaultConnector.java:267) 在 org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:85) 在 org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162) 在 org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.setOrDetectDatasource(DatabaseSessionImpl.java:214) 在 org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:776) 在 org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:265) 在 org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:734) ... 5 更多
【问题讨论】:
能否请您发布堆栈跟踪以及 EclipseLink 的配置 xml? 您使用的是什么版本的 Java? 我使用的是 JavaSE 1.8 在问题中添加了 persistence.xml 你使用什么服务器来部署? 【参考方案1】:我的项目使用 MySQL 和 JPA 的 EclipseLink 实现,并且工作正常。我的 pom 文件:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa</artifactId>
<version>2.7.6</version>
</dependency>
【讨论】:
以上是关于配置错误。找不到类 [com.mysql.cj.jdbc.Driver]。 EclipseLink,MySQL 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章
Symfony 错误:在链配置的命名空间 App\Entity 中找不到类 xxx [重复]
Zend Framework 2 + Doctrine ODM,“在链配置的命名空间中找不到类”错误?
配置错误。找不到类 [com.mysql.cj.jdbc.Driver]。 EclipseLink,MySQL 驱动程序