【问题标题】:Spring Boot : Cannot load driver class: org.hsqldb.jdbcDriverSpring Boot:无法加载驱动程序类:org.hsqldb.jdbcDriver
【发布时间】:2018-01-31 08:22:18
【问题描述】:

我有一个简单的 Spring Boot 应用程序(通过 Spring Roo 生成)。

数据库配置如下:

spring.datasource.driver-class-name=org.hsqldb.jdbcDriver
spring.datasource.url=jdbc\:hsqldb\:mem\:PetClinic
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.messages.encoding=ISO-8859-1
spring.messages.fallback-to-system-locale=false
spring.thymeleaf.mode=html

这是我声明 HSQLDB 依赖项的方式:

<dependency>
  <groupId>org.hsqldb</groupId>
  <artifactId>hsqldb</artifactId>
  <scope>provided</scope>
</dependency>

当我启动应用程序时,我得到了错误:

Caused by: java.lang.IllegalStateException: Cannot load driver class: org.hsqldb.jdbcDriver
    at org.springframework.util.Assert.state(Assert.java:392) ~[spring-core-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:214) ~[spring-boot-autoconfigure-1.4.1.RELEASE.jar:1.4.1.RELEASE]

Spring-boot-autoconfigure 模块尝试使用加载当前上下文类的ClassUtils 实用程序类加载类。

我想知道这种方法是否可以正常工作,因为我使用的是负责加载 Maven 依赖项的 Tomcat 容器? 为什么即使使用 libs 目录中的 JAR,Spring 也找不到它?

【问题讨论】:

    标签: spring spring-boot


    【解决方案1】:
    1. 从您的pom.xml 中删除&lt;scope&gt;provided&lt;/scope&gt;
    2. 从您的应用程序属性中删除 spring.datasource.driver-class-namespring.datasource.url 属性

    因为:

    • 当提供spring.datasource.url 时,驱动程序类名是多余的,因为 Spring Boot 会自动尝试加载正确的驱动程序。
    • 因为您想使用嵌入式数据库,所以根本不需要提供spring.datasource.url。只需要在类路径上有一个嵌入式数据库 JAR(如 HSQLDB)

    相关文档sn-p:

    Spring Boot 可以自动配置嵌入式 H2、HSQL 和 Derby 数据库。 您无需提供任何连接 URL,只需包含构建 依赖于您要使用的嵌入式数据库。

    请阅读 Spring Boot 文档中的 Working with SQL databases 部分。我所说的一切都在那里提到,所以你可以得到更多的细节。

    【讨论】:

      【解决方案2】:

      我看到你提供的范围,&lt;scope&gt;provided&lt;/scope&gt;,我不认为 Tomcat 提供了开箱即用的 hsqldb.jar。

      所以尝试删除提供的范围。

      【讨论】:

        猜你喜欢
        • 2012-09-14
        • 2018-11-13
        • 2014-10-14
        • 2020-01-29
        • 2020-09-17
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        相关资源
        最近更新 更多