简体   繁体   English

JPA、Maven 和 MySQL。 配置错误。 Class [com.mysql.jdbc.Driver] 未找到

[英]JPA, Maven and MySQL. Configuration error. Class [com.mysql.jdbc.Driver] not found

SOLVED : just put mysql-connector-java-5.1.x.jar inside JAVA_HOME\jre\lib\ext.解决:只需将 mysql-connector-java-5.1.x.jar 放入 JAVA_HOME\jre\lib\ext 即可。

hello all, i'm just starting build a demo apps that used maven, mysql and JPA and this is my code: pom.xml: hello all, i'm just starting build a demo apps that used maven, mysql and JPA and this is my code: pom.xml:

<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>
<groupId>org.ee6.book</groupId>
<artifactId>chapter02</artifactId>
<version>2.0</version>
<name>Chapter 02 - JPA</name>


<dependencies>
    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>javax.persistence</artifactId>
        <version>2.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>eclipselink</artifactId>
        <version>2.0.1</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <inherited>true</inherited>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>

and my persistence.xml:和我的坚持。xml:

<persistence-unit name="chapter02PU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>org.ee6.book.chapter02.Book</class>
<properties>
    <property name="eclipselink.target-database" value="MYSQL"/>
    <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
    <property name="eclipselink.logging.level" value="SEVERE"/>
    <property name="eclipselink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
    <property name="eclipselink.jdbc.url" value="jdbc:mysql://localhost:3306/chapter02DB"/>
    <property name="eclipselink.jdbc.user" value="root"/>
    <property name="eclipselink.jdbc.password" value="xyz"/>    
</properties>

when execute mvn compile it just fine, but when i try to execute main class当执行mvn 编译它就好了,但是当我尝试执行 main class

mvn exec:java -Dexec.mainClass="org.ee6.book.chapter02.Main"

I've got error like:我有如下错误:

    [EL Severe]: 2011-06-03 00:23:27.89--ServerSession(26373776)--Local Exception Stack:
Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.0.1.v20100213-r6600): org.eclipse.persistence.exceptions.DatabaseException
Exception Description: Configuration error.  Class [com.mysql.jdbc.Driver] not found.
        at org.eclipse.persistence.exceptions.DatabaseException.configurationErrorClassNotFound(DatabaseException.java:82)
        at org.eclipse.persistence.sessions.DefaultConnector.loadDriverClass(DefaultConnector.java:267)
        at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:85)
        at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
        at org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:327)
        at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.connectInternal(DatabaseAccessor.java:295)
        at org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:415)
        at org.eclipse.persistence.sessions.server.ConnectionPool.buildConnection(ConnectionPool.java:155)
        at org.eclipse.persistence.sessions.server.ConnectionPool.startUp(ConnectionPool.java:433)
        at org.eclipse.persistence.sessions.server.ServerSession.connect(ServerSession.java:495)
        at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.login(DatabaseSessionImpl.java:632)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:230)
        at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:369)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:151)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:207)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:195)
        at org.ee6.book.chapter02.Main.main(Main.java:20)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:291)
        at java.lang.Thread.run(Thread.java:662)

I'm using maven 2.2.1.我正在使用 maven 2.2.1。 Any help would be greatly appreciated!任何帮助将不胜感激! Thanks谢谢

Simply add a dependency to the MySQL Java connector with a runtime scope:只需将依赖项添加到具有运行时 scope 的 MySQL Java 连接器即可:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.21</version>
    <scope>runtime</scope>
</dependency>

It's probably because you have the mysql-dependency (mysql-connector-java) twice in your pom.这可能是因为你的 pom.xml 中有两次 mysql-dependency (mysql-connector-java)。 Once with scope test and once with the default scope.一次使用 scope 测试,一次使用默认 scope。 Removing the one with test scope will hopefully solve your classnotfound.删除带有测试 scope 的那个将有望解决您的 classnotfound 问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 异常描述:配置错误。 在Netbeans上找不到类[com.mysql.jdbc.Driver] - Exception Description: Configuration error. Class [com.mysql.jdbc.Driver] not found at Netbeans 找不到类com.mysql.jdbc.Driver - Class not found com.mysql.jdbc.Driver 未找到指定的 JDBC 驱动程序 com.mysql.jdbc.Driver 类 - Specified JDBC Driver com.mysql.jdbc.Driver class not found 配置错误。 找不到 Class [com.mysql.cj.jdbc.Driver]。 EclipseLink, MySQL 驱动程序 - Configuration error. Class [com.mysql.cj.jdbc.Driver] not found. EclipseLink, MySQL driver jasperreports 上的远程 MYSQL 错误:未找到 com.mysql.jdbc.Driver - Remote MYSQL on jasperreports error: com.mysql.jdbc.Driver not found 找不到com.mysql.jdbc.Driver的类 - class not found exception for com.mysql.jdbc.Driver com.mysql.jdbc.driver类未找到异常 - com.mysql.jdbc.driver class not found exception JBOSS AS 7和com.mysql.jdbc.Driver错误 - JBOSS AS 7 and com.mysql.jdbc.Driver error 创建会话时出错:org.hibernate.HibernateException:找不到指定的JDBC驱动程序com.mysql.jdbc.Driver类 - Error creating Session: org.hibernate.HibernateException: Specified JDBC Driver com.mysql.jdbc.Driver class not found 无法加载 JDBC 驱动程序类 [com.mysql.jdbc.Driver] - Could not load JDBC driver class [com.mysql.jdbc.Driver]
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM