Ошибка 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 в весеннем проекте и, наконец, обработайте ошибку, чтобы код предупреждал о проблеме.