当前位置: 首页 > 知识库问答 >
问题:

无法构建实体管理器工厂,无法加载驱动程序

贺景胜
2023-03-14

我试图用JPA2.1、Hibernate和MariaDB创建基本的CRUD。

当我尝试在Tomcat上运行我的项目时,我得到以下错误:

Caused by: java.lang.ClassNotFoundException: Could not load requested class : mariadb-java-client-1.1.7
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl$AggregatedClassLoader.findClass(ClassLoaderServiceImpl.java:217)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:226)
... 50 more  

我的数据库正在运行。我通过maven获取我的JDBC驱动程序,并且JAR存在于maven Dependencies文件夹中。下面是persistence.xml(我遵循了Pro JPA2.1教材中的示例):

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="CRUD">

    <properties>
        <property name="javax.persistence.jdbc.driver"
                  value="mariadb-java-client-1.1.7"/>
        <property name="javax.persistence.jdbc.url"
                  value="jdbc:derby://localhost:3306/Practice;create=true"/>
        <property name="javax.persistence.jdbc.user" value="root"/>
        <property name="javax.persistence.jdbc.password" value="password"/>
    </properties>

</persistence-unit>

POM:

<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>CRUD</groupId>
<artifactId>CRUD</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
    <sourceDirectory>src</sourceDirectory>
    <resources>
        <resource>
            <directory>src</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
                <warSourceDirectory>WebContent</warSourceDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <!-- https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client -->
    <dependency>
        <groupId>org.mariadb.jdbc</groupId>
        <artifactId>mariadb-java-client</artifactId>
        <version>1.1.7</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.1.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.1.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-c3p0</artifactId>
        <version>5.1.0.Final</version>
    </dependency>
</dependencies>

共有1个答案

孟德曜
2023-03-14

你的输入是错误的。应该将javax.persistence.JDBC.driver设置为JDBC驱动程序的类名,而不是某个jar名称!

<property name="javax.persistence.jdbc.driver" value="org.mariadb.jdbc.Driver"/>
 类似资料:
  • 编辑:堆栈跟踪如下: 下面是persistence.xml:

  • 嘿,伙计们,还有一个问题,下面是信息

  • 问题内容: 在Ubuntu上运行,出现此错误: 平台工具是最新的。 模拟器图片的使用,它在Android N上。 更新(2016年12月2日): @Sébastien的解决方案不再起作用,但提供: 如果我禁用基于GPU的渲染并切换到基于软件的GL图形,则会出现以下运行时错误: 问题答案: 遇到相同的问题,我的解决方法是设置以下env变量: 导出ANDROID_EMULATOR_USE_SYSTEM

  • 问题内容: 我在春季配置了一个netezza db。我在类路径中添加了依赖的nzjdbc.jar 春季配置: 问题答案: 将放入您的本地Maven存储库 (在该目录执行这个位于 然后像正常依赖项一样使用它: @请参阅安装第三方JAR的指南

  • 我正在尝试将MySQL数据库连接到weblogic,以便我可以在我的项目中使用它,我对此很陌生,无论如何,我已经创建了一个数据源,我选择MySQL作为数据库类型 C:\Oracle\Middleware\wlserver\U 10.3\server\ext\jdbc\mysql 但它不起作用!

  • 这是hibernate.cfg.xml: 这是Hibernate实用程序文件: