Ошибка SpringBoot: зарегистрированный драйвер с именем driverClassName = oracle.jdbc.driver.OracleDriver не найден, попытка прямого инстанцирования

Я изучаю 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.

Но ничего не работает. Любая помощь приветствуется.

ОБНОВИТЬ

У меня нет идеи, почему, но я перезапустил свою систему, и теперь она работает нормально.

Ответ 1

Относительно предупреждения-сообщения от заголовка вопроса:

Зарегистрированный драйвер с driverClassName = oracle.jdbc.driver.OracleDriver не найден, при попытке выполнить непосредственную реализацию

Это потому, что вы использовали неправильное значение для: spring.datasource.driver-class-name

Используйте oracle.jdbc.OracleDriver вместо oracle.jdbc.driver.OracleDriver

Смотрите подробный ответ здесь: fooobar.com/questions/129428/...

Ответ 2

Вы должны использовать oracle.jdbc.OracleDriver вместо oracle.jdbc.driver.OracleDriver в файле POM

Ответ 3

Он явно указывает, что драйвер отсутствует, пожалуйста, проверьте локальный репозиторий maven, найдите jar файл jdbc-драйвера в XX:\user\XXX\m2\XX

С веб- сайта oracle для подключения к Oracle 12 с помощью JDK 8 вы можете следить за этим.

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

Ответ 4

Я думаю, что эта зависимость для получения драйвера JDBC Oracle не найдена в репозитории Maven.

Итак, лучше проанализируйте POM для этой зависимости. FYI, оракул не публикует последний драйвер JDBC в репозитории Maven. Если вы хотите получить последний драйвер JDBC из папки установки базы данных Oracle ($ {ORACLE_INSTALLATION}/jdbc) или загрузить его с веб-сайта Oracle Technology Network. Вы можете обратиться к этой ссылке, если используете версию 12c:

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

Затем вам нужно создать новую папку, чтобы найти драйвер Oracle JDBC внутри вашего проекта и изменить зависимость для JDBC Oracle, указав его в только что созданную папку.

Ответ 5

Первое, что нужно сделать, это проверить, работает ли БД, попытаться проверить связь с базой данных, проверить, работает ли порт. Если это нормально, проверьте POM и application.properties в весеннем проекте и, наконец, обработайте ошибку, чтобы код предупреждал о проблеме.