【问题标题】:Spring can't locate a driver class that *is* in the classpathSpring 无法在类路径中找到 *is* 的驱动程序类
【发布时间】:2019-12-17 21:24:10
【问题描述】:

我正在尝试在 tomcat 服务器上运行 springboot 应用程序,该应用程序包含能够与保险库通信并在运行时更改数据库凭据的数据源。我在此代码中所做的唯一更改是添加一些与保管库通信所需的属性,并更改数据源配置以包含这些保管库更改。

我在启动过程中收到以下错误:

说明: 无法确定数据库类型 NONE 的嵌入式数据库驱动程序类

但是,在我的 application.properties 文件中,我确实指定了驱动程序类...

spring.datasource.hikari.driverClassName=com.ibm.db2.jcc.DB2Driver

在 pom 文件中,我有正确的依赖关系,因此驱动程序实际上包含在类路径中...我什至在 Intellij 的“外部库”下拉列表中看到了 jar。

同样,除了为我们的保管库添加额外的属性...并更改我们的数据源配置中的代码以使用保管库之外,我没有做很多更改。

我已经将我的更改与另一个模块进行了比较,在该模块中我做了完全相同的事情,并且根本没有这个问题。

有人对为什么会发生这种情况有任何想法,或者对我可以尝试的方法有什么建议吗?

我尝试在我的@Configuration 类中包含一个@Import 注释,它指向保险库配置。我尝试在我的应用程序类上添加一个@ComponentScan,以尝试真正让它正确地查看配置和属性。

如果需要任何进一步的细节,请告诉我。提前感谢您提供的任何和所有帮助。

【问题讨论】:

  • 我突然注意到您的driverClassNamedriver-class-name 的引导约定不匹配,但您应该在调试模式下运行应用程序并查看自动配置报告的内容;我想你正在寻找HikariDataSourceConfiguration
  • 属性的名称是spring.datasource.driverClassName 而不是spring.datasource.hikari.driverClassName。请添加您的pom.xml 和您的application.properties 或至少添加spring.datasource.* 的那些。

标签: java spring spring-boot hikaricp


【解决方案1】:

我也遇到过同样的问题,通过下面的注释解决了

@SpringDataApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})

请提供代码sn-p,我可以调试一下。

【讨论】:

  • 嘿Sarjit,谢谢你的想法。我会试一试,看看它是否有效,不幸的是,我使用的很多代码都是我的组织内部的,所以我无法分享太多(真正进行任何有效的外部测试).. . 大多数情况下,我只能分享一个基本的数据源设置,它可能不会有这个问题.... 话虽如此,我会试一试这个想法,如果它有效,我会回复你。再次感谢:)
  • 嗨 Sarjit,虽然这确实消除了错误,但不幸的是它完全消除了数据源,这是必要的。所以这可能不是这个问题的理想解决方案。不过感谢您的建议
  • 能否分享一下数据源配置文件sn-p和pom.xml以及springboot starter文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-30
  • 2014-03-30
  • 1970-01-01
  • 2018-04-05
  • 2021-07-15
  • 2018-03-17
相关资源
最近更新 更多