spring-boot - Spring 正在寻找 PostgreSql 驱动程序,但我使用的是 JTDS
问题描述
加载 spring 云数据流应用程序失败并显示此日志:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: org.postgresql.Driver
但是配置是:
spring.jpa.database=sybase
spring.datasource.url=jdbc:jtds:sybase://xxx:X000/xxxx;autoCommit=false;appName=dataflow
spring.datasource.username=xx
spring.datasource.password=xxx
spring.datasource.driver-class-name=net.sourceforge.jtds.jdbc.Driver
spring.datasource.hikari.driver-class-name=net.sourceforge.jtdatasource.jdbc.Driver
spring.datasource.hikari.pool-name=datasource-pool
spring.datasource.hikari.connection-timeout=3000
spring.datasource.hikari.maximum-pool-size=2
spring.datasource.hikari.minimum-idle=0
spring.datasource.hikari.connection-test-query=SELECT 1
spring.datasource.hikari.auto-commit=false
spring.datasource.hikari.transaction-isolation=TRANSACTION_READ_COMMITTED
依赖:
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.3.1</version>
</dependency>
从未指定 PostgreSql。
使用弹簧靴 2.3.3
更新:
我认为 spring 数据流上下文中的某些内容正在设置驱动程序,因为如果我创建自己的配置类并且不使用 spring.datasource 前缀,它就可以工作:
@Configuration
public class DataSourceConfiguration {
@Bean
@Primary
@ConfigurationProperties("spring.ds")
public DataSourceProperties dataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@Primary
@ConfigurationProperties("spring.ds.hikari")
public HikariDataSource sybaseDataSource() {
return dataSourceProperties().initializeDataSourceBuilder().type(HikariDataSource.class).build();
}
}
解决方案
推荐阅读
- jquery - Kendo UI Scheduler 创建 SharePoint 项目失败。缺少元数据标记
- python - Python: passing url through variable not working
- terminal - 在 OpenSUSE 上安装网络服务器
- cmake - 如何使用 cmake 命令将一些特定类型的文件从源目录复制到目标目录?
- c# - Get xaml directory path at design time
- ios - react-native 在终端中没有找到任何 iOS 模拟器
- ruby-on-rails - Factory Bot 和 Rspec 具有嵌套属性和同一张表的两个外键
- java - 如何使用 Apache Jena 获得“Select count(*)”查询的结果?
- mysql - ext4 上的 Mysql 更新
- gradle - 从 4.10.2 升级到 gradle 5.0 时,Publishing.publications.genericArtifact 不可用