我有一个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驱动程序,但是它已经在项目类路径中,有什么建议吗?预先感谢
答案 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”之后的空白处。
因此,请注意'''不可见的空白:)。