web-dev-qa-db-fra.com

Échec du chargement de la classe de pilote Oracle.jdbc.OracleDriver dans un chargeur de classe HikariConfig ou dans un contexte de thread

Je travaille avec Spring pour la première fois et j'essaie de le configurer pour que mon code puisse accéder à une base de données Oracle. J'ai la configuration suivante dans mon application.properties:

spring.datasource.url=jdbc:Oracle:thin:@140.192.30.237:1521:def
    spring.datasource.username=<username>
    spring.datasource.password=<password>
    spring.datasource.driver.class-name=Oracle.jdbc.driver.OracleDriver

Mon pom.xml contient les dépendances suivantes:

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-Java</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.Oracle.jdbc</groupId>
        <artifactId>ojdbc8</artifactId>
        <version>12.2.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-Java-driver</artifactId>
        <version>LATEST</version>
    </dependency>
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>LATEST</version>
    </dependency>
    <dependency>
        <groupId>javax.json</groupId>
        <artifactId>javax.json-api</artifactId>
        <version>1.0</version>
    </dependency>
</dependencies>

Pourtant, j’obtiens l’erreur suivante et je ne sais pas comment la résoudre. J’ai trouvé des erreurs similaires, mais aucune d’entre elles n’a résolu mon problème:

Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource:

    Property: driverclassname
    Value: Oracle.jdbc.OracleDriver
    Origin: "driverClassName" from property source "source"
    Reason: Failed to load driver class Oracle.jdbc.OracleDriver in either of HikariConfig class loader or Thread context classloader

Action:

Update your application's configuration

Merci pour tous les conseils pour résoudre ce problème.

8
Polyphase29

Comme mentionné dans votre erreur, le problème provient de votre configuration. Ligne suivante,

spring.datasource.driver.class-name=Oracle.jdbc.driver.OracleDriver

devrait changer comme,

spring.datasource.driver-class-name=Oracle.jdbc.driver.OracleDriver

Notez que ce n'est pas driver.class-name, mais plutôt driver-class-name

7
Damith
    Add below dependency and repository in the pom

    <dependency>
            <groupId>com.Oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3</version>
        </dependency>

    <repositories>
        <repository>
            <id>codelds</id>
            <url>https://code.lds.org/nexus/content/groups/main-repo</url>
        </repository>
       </repositories>


Also add the following properties in the application.properties

 spring.datasource.driver-class-name=Oracle.jdbc.driver.OracleDriver
    spring.datasource.url=jdbc:Oracle:thin:@localhost:1521:xe(SID)
    spring.datasource.username=system
    spring.datasource.password=pw
0
abdullah imran