Spring Bootアプリケーションを使用していて、Oracleデータベースにアクセスしようとしています。正常にビルドされましたが、Kubernetesにデプロイしようとすると、以下のエラーが発生します。
application.properties
ファイルとpom.xml
ファイルを以下の構成で変更しました。
Application.yml
spring.datasource.url=jdbc:Oracle:thin:@<IP>:1521:orcl
spring.datasource.username=<username>
spring.datasource.password=<password>
spring.datasource.driver.class=Oracle.jdbc.driver.OracleDriver
POMファイル
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
例外
*************************** APPLICATION FAILED TO START *************************** Description: 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
Mavenの依存関係:
<dependency>
<groupId>com.Oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0</version>
</dependency>
application.ymlファイル:
# Oracle settings
spring.datasource.url=jdbc:Oracle:thin:@localhost:1521:xe
spring.datasource.username=system
spring.datasource.password=password
spring.datasource.driver.class-name=Oracle.jdbc.OracleDriver
注:driver.class-name
場合によっては、application.ymlファイル(Oracle 10の場合)にspring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
を追加する必要があります。
以下の依存関係とリポジトリを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>
また、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
ファイル内のdbドライバーを更新しますApplication.yml
から
spring.datasource.driver-class-name=Oracle.jdbc.**driver**.OracleDriver or spring.datasource.driver-class-name=Oracle.jdbc.OracleDriver
アプリケーションがOracle.jdbc.OracleDriver
クラスをロードするには、OracleJDBCドライバーのjarファイルをダウンロードしてクラスパスに追加する必要があります。
ドライバーは ここ からダウンロードできます。
Spring Boot app の例が役立つかどうかを確認できます。