Ошибка 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.

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

ОБНОВИТЬ

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
26
0
42 748
5

Ответы 5

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

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

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

Я проверил, есть ли там ojdbc jar. Также мой обычный материал jdbc работает с помощью этой банки.

Shlok Srivastava 25.08.2018 08:48

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

Итак, лучше просмотрите POM для этой зависимости. К вашему сведению, оракул не публикует последний драйвер 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 внутри вашего проекта и изменить зависимость для Oracle JDBC, указав его в папке, которую вы только что создали.

Я знал, что maven не хранит для меня файл jar. Вот почему я сделал это вручную и поместил файл jar в локальный репозиторий maven, но на данный момент он не работает.

Shlok Srivastava 25.08.2018 09:02

Попробуйте изменить его, перейдя по этой ссылке: roufid.com/3-ways-to-add-local-jar-to-maven-project

Gunardy Sutanto 25.08.2018 09:11

Gunardy Sutanto Я использовал первый метод, указанный в вашей ссылке. Я напрямую добавил его в папку ojdbc7, поэтому путь не нужен.

Shlok Srivastava 25.08.2018 09:32

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

Registered driver with driverClassName=oracle.jdbc.driver.OracleDriver was not found, trying direct instantiation

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

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

См. Подробный ответ здесь: Разница между классами драйверов Oracle jdbc?.

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

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

Другие вопросы по теме