我正在学习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更新。
但是似乎没有任何效果。任何帮助表示赞赏。
更新
我不知道为什么,但是我重新启动了系统,现在可以正常工作了。
答案 0 :(得分:15)
关于问题标题的警告消息:
找不到具有driverClassName = oracle.jdbc.driver.OracleDriver的注册驱动程序,尝试直接实例化
那是因为您为spring.datasource.driver-class-name
使用oracle.jdbc.OracleDriver
代替oracle.jdbc.driver.OracleDriver
答案 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并最终处理该错误,以便代码警告该问题。