com.zaxxer.hikari.pool.HikariProxyConnection cannot be cast to oracle.jdbc.OracleConnection

176
28 мая 2022, 01:50

Ошибку получаю при вызове метода, который обращается к БД через SimpleJdbcCall.

Хикари описываю так:

datasource:
  type: com.zaxxer.hikari.HikariDataSource
  hikari:
    minimum-idle: 4
    maximum-pool-size: 20
    pool-name: "rsPool"
    auto-commit: true
    connection-timeout: 20000
    allow-pool-suspension: false
    driver-class-name: oracle.jdbc.OracleDriver
    jdbcUrl: ${datasource.url}
    username: ${datasource.username}
    password: ${datasource.password}

Класс настроек:

@Configuration
@EnableTransactionManagement
public class JdbcConfiguration {
    @Bean(name = "defaultHikariConfig")
    @ConfigurationProperties(prefix = "spring.datasource.hikari")
    public HikariConfig hikariConfig() {
        return new HikariConfig();
    }
    @Bean(name = "defaultDataSource")
    public DataSource defaultDataSource(
            @Qualifier("defaultHikariConfig") HikariConfig hikariConfig) {
        return new HikariDataSource(hikariConfig);
    }
    @Bean(name = "defaultJdbcTemplate")
    public JdbcTemplate jdbcTemplate(
            @Qualifier("defaultDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
    @Bean(name = "defaultTransactionManager")
    public PlatformTransactionManager transactionManager(
            @Qualifier("defaultDataSource") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }
    @Bean(name = "defaultNamedParameterJdbcTemplate")
    public NamedParameterJdbcTemplate namedParameterJdbcTemplate(
            @Qualifier("defaultJdbcTemplate") JdbcTemplate jdbcTemplate) {
        return new NamedParameterJdbcTemplate(jdbcTemplate);
    }
    @Bean
    public RegistryDao registryDao(
            @Qualifier("defaultJdbcTemplate") JdbcTemplate jdbcTemplate,
            @Qualifier("defaultNamedParameterJdbcTemplate")
                    NamedParameterJdbcTemplate namedParameterJdbcTemplate) {
        return new RegistryDao(jdbcTemplate, namedParameterJdbcTemplate);
    }
}

В чём может быть проблема?

Версии:

'hikariCP'                        : '2.4.7',
'oraSpringData'                   : '1.2.1.RELEASE',
'ojdbc'                           : '12.1.0.2'
'springBoot'                      : '1.5.8.RELEASE'
Answer 1

Для HikariDataSource нужно указать класс драйвера, см. таблицу:

| Database      | *DataSource* class                                 |
| ------------- | -------------------------------------------------- |
| Apache Derby  | org.apache.derby.jdbc.ClientDataSource             |
| Firebird      | org.firebirdsql.ds.FBSimpleDataSource              |
| H2            | org.h2.jdbcx.JdbcDataSource                        |
| HSQLDB        | org.hsqldb.jdbc.JDBCDataSource                     |
| IBM DB2       | com.ibm.db2.jcc.DB2SimpleDataSource                |
| IBM Informix  | com.informix.jdbcx.IfxDataSource                   |
| MS SQL Server | com.microsoft.sqlserver.jdbc.SQLServerDataSource   |
| ~~MySQL~~     | ~~com.mysql.jdbc.jdbc2.optional.MysqlDataSource~~  |
| MariaDB       | org.mariadb.jdbc.MariaDbDataSource                 |
| Oracle        | oracle.jdbc.pool.OracleDataSource                  |
| OrientDB      | com.orientechnologies.orient.jdbc.OrientDataSource |
| PostgreSQL    | com.impossibl.postgres.jdbc.PGDataSource           |
| PostgreSQL    | org.postgresql.ds.PGSimpleDataSource               |
| SAP MaxDB     | com.sap.dbtech.jdbc.DriverSapDB                    |
| SQLite        | org.sqlite.SQLiteDataSource                        |
| SyBase        | com.sybase.jdbc4.jdbc.SybDataSource                |

См. Error using com.zaxxer.hikari.HikariDataSource

READ ALSO
Интеграция appsflyer SDK

Интеграция appsflyer SDK

Всем доброго дня, с Android разработкой только знакомлюсь, прошу не кидать камниРешил в свое приложение интегрировать AppsFlyer SDK для дальнейшего...

256
Переопределение переменных в дочерних классах

Переопределение переменных в дочерних классах

Насколько я понял, в объекте a будут доступны только те переменные и методы, которые есть в классе A, но запускаться они будут из класса BНо вот...

210
java наследование и private

java наследование и private

Есть 2 класса,КлассА и КлассБ ClassAjava->

165
Как получить номер фискального регистратора ШТРИХ-М-02Ф?

Как получить номер фискального регистратора ШТРИХ-М-02Ф?

Мне нужно программно получить полный номер фискального регистратора(ФР), я использую метод getPhysicalDeviceName:

122