【问题标题】:Driver oracle.jdbc.OracleDriver claims to not accept jdbcUrl驱动oracle.jdbc.OracleDriver声称不接受jdbcUrl
【发布时间】:2019-09-26 23:46:48
【问题描述】:

我正在尝试连接到 Oracle 数据库。

当我尝试通过简单的 jdbc 连接进行连接时,它可以工作。

Class.forName("oracle.jdbc.driver.OracleDriver");
connection = DriverManager.getConnection("jdbc:oracle:thin:@chbsux0097.eu.novartis.net:1530:AD14", "xxxx", "xxxxx")

但是,它不适用于 Spring-boot 并出现以下错误

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-05-09 12:48:51.189 ERROR 16236 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unsatisfied dependency expressed through method 'entityManagerFactory' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'entityManagerFactoryBuilder' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unsatisfied dependency expressed through method 'entityManagerFactoryBuilder' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaVendorAdapter' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.orm.jpa.JpaVendorAdapter]: Factory method 'jpaVendorAdapter' threw exception; nested exception is java.lang.RuntimeException: Driver oracle.jdbc.OracleDriver claims to not accept jdbcUrl, jdbc:oracle:thin@chbsux0097.eu.novartis.net:1530:AD14
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:769) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:509) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]

application.properties

spring.datasource.username=xx
spring.datasource.password=xxxxx
spring.datasource.url=jdbc:oracle:thin@chbsux0097.eu.novartis.net:1530:AD14
spring.datasource.driver.class=oracle.jdbc.driver.OracleDriver

【问题讨论】:

  • 去掉Class.forName() 行。自 2007 年以来就不再需要它。请注意,您已经给出了两个不同版本的类名。你不需要再知道了。

标签: java spring-boot jdbc


【解决方案1】:

您在配置中thin 之后的 URL 中缺少一个冒号。它必须是:

spring.datasource.url=jdbc:oracle:thin:@chbsux0097.eu.novartis.net:1530:AD14

请注意,冒号出现在您的工作简化示例中。

【讨论】:

  • spent :'( 昨天一整天都没注意到,是的,现在可以了
  • 服务名称必须用 / not 分隔:因此正确的形式是:spring.datasource.url=jdbc:oracle:thin:@chbsux0097.eu.novartis.net:1530/AD14
  • @Frk 我在那里使用冒号(尽管 SID 不是服务名称),它适用于 ojdbc7。
猜你喜欢
  • 2021-10-19
  • 2020-10-29
  • 1970-01-01
  • 2019-08-17
  • 2020-08-05
  • 2020-11-02
  • 1970-01-01
  • 2020-06-06
  • 2016-04-16
相关资源
最近更新 更多