Spring Boot Hikari找不到DriverClassName

时间:2018-07-18 05:31:18

标签: java spring spring-boot

我有一个spring boot项目,通过eclipse Project > Run as > spring boot app执行时,它运行得很好

但是当我构建项目并使用java -jar myproject.jar执行项目或使用mvn spring-boot:run运行项目时,会抛出此错误

Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource:

Property: driverclassname
Value: com.microsoft.sqlserver.jdbc.SQLServerDriver
Origin: "driverClassName" from property source "source"
Reason: Failed to load driver class com.microsoft.sqlserver.jdbc
.SQLServerDriver in either of HikariConfig class loader or Thread context classloader

Action:

Update your application's configuration

我的SQL Server连接器依赖性

<dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>6.4.0.jre8</version>
        <scope>test</scope>
</dependency>

还有我的application.properties

spring.datasource.url=jdbc:sqlserver://mydb;databaseName=HTSdb
spring.datasource.username=xxx
spring.datasource.password=xxx
spring.jpa.show-sql=true
spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect

看起来我的应用程序找不到sqlserver驱动程序,但是它已经在项目类路径中,有什么建议吗?预先感谢

2 个答案:

答案 0 :(得分:6)

我认为问题在于依赖范围设置为 test

范围 test 表示在应用程序的标准运行时不需要依赖关系,并且仅应将其用于测试运行!

通常,数据库连接器的依赖性是通过运行时范围设置的。

 <dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.4.0.jre8</version>
    <scope>runtime</scope>
 </dependency>

答案 1 :(得分:0)

Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource:

Property: driver-class-name
Value: org.postgresql.Driver 
Origin: "driverClassName" from property source "source"
Reason: Failed to load driver class org.postgresql.Driver  in either of HikariConfig 
class loader or Thread context classloader

Action:

Update your application's configuration

在我的情况下,使用“ org.postgresql.Driver”只是发生了相同的错误。 猜猜是什么问题?错误地在“ org.postgresql.Driver”之后的空白处。

因此,请注意'''不可见的空白:)。