SpringBoot错误:找不到具有driverClassName = oracle.jdbc.driver.OracleDriver的注册驱动程序,尝试直接实例化

时间:2018-08-25 06:22:12

标签: spring-boot

我正在学习SpringBoot,我只是尝试运行曾经成功运行的项目,但是现在出现此错误

 enter cod2018-08-25 11:30:21 WARN  c.z.hikari.util.DriverDataSource - Registered driver with driverClassName=oracle.jdbc.driver.OracleDriver was not found, trying direct instantiation.
2018-08-25 11:30:24 ERROR com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.
java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connectione here

在抛出这两个异常之后。

    Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_144]

Caused by: java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673) ~[ojdbc7-12.1.0.2.jar:12.1.0.1.0]

application.properties:

   #server
server.port=7003

#database
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:Xe
spring.datasource.username=XXXXXX
spring.datasource.password=XXXXXX
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false

#logging
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
logging.level.org.hibernate.SQL=INFO
logging.level.org.hibernate.type.descriptor.sql=trace
logging.level.=INFO

#eureka-guidelines
eureka.client.register-with-eureka=true
eureka.client.serviceUrl.defaultZone=http://localhost:7005/eureka
spring.application.name=SupplyManagement_14_SpringBoot

Pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.myapp.supplyManagement</groupId>
    <artifactId>SupplyManagement_14_SpringBoot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>SupplyManagement_14_SpringBoot</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR1</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc7</artifactId>
            <version>12.1.0.2</version>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

我尝试了一些调试,例如 1.手动检查oracle.jdbc.driver.OracleDriver是否存在。 2.使用其他ojdbc之类的6。 3. maven更新。

但是似乎没有任何效果。任何帮助表示赞赏。

更新

我不知道为什么,但是我重新启动了系统,现在可以正常工作了。

5 个答案:

答案 0 :(得分:15)

关于问题标题的警告消息:

  

找不到具有driverClassName = oracle.jdbc.driver.OracleDriver的注册驱动程序,尝试直接实例化

那是因为您为spring.datasource.driver-class-name

使用了错误的值

使用oracle.jdbc.OracleDriver代替oracle.jdbc.driver.OracleDriver

在此处查看详细答案:https://stackoverflow.com/a/6202721/3581539

答案 1 :(得分:5)

您必须在POM文件中使用 j % strlen(argv[1] 而不是 oracle.jdbc.OracleDriver

答案 2 :(得分:0)

它清楚表明驱动程序丢失,请检查Maven本地存储库,在XX:\ user \ XXX \ m2 \ XX中查找jdbc驱动程序jar文件

从oracle网站site使用JDK 8连接到Oracle 12,您可以按照此操作。

<groupid>com.oracle.jdbc</groupid>
<artifactid>ojdbc8</artifactid>
<version>12.2.0.1</version>

答案 3 :(得分:0)

我认为在Maven存储库中找不到这种获取Oracle JDBC驱动程序的依赖项。

因此,最好查看POM以了解这种依赖性。仅供参考,oracle没有在Maven存储库中发布最新的JDBC驱动程序。如果您希望从Oracle数据库安装文件夹( $ {ORACLE_INSTALLATION} / jdbc )中获得最新的JDBC驱动程序,或者从Oracle技术网网站下载该驱动程序。如果您使用的是12c版本,则可以参考此链接:

  

https://www.oracle.com/technetwork/database/features/jdbc/jdbc-ucp-122-3110062.html

然后,您需要创建新文件夹以在项目内找到Oracle JDBC驱动程序,并通过将Oracle JDBC驱动程序指向刚创建的文件夹来更改其依赖性。

答案 4 :(得分:0)

要做的第一件事是检查数据库是否已启动并且正在运行,尝试对数据库执行ping操作,并检查端口是否已启动。如果可以,请检查spring项目中的POM和application.properties并最终处理该错误,以便代码警告该问题。