com.zaxxer.hikari.pool.HikariPool $ PoolInitializationException:尝试使用Redshift设置HikraCP时无法初始化池

dk7

我正在尝试使用具有AWS Redshift的HikariCP来设置JDBC连接池,如下所示:

public class RedshiftConnector {

private static HikariDataSource dataSource;
private static int poolSize = 5;

public static void init() throws SQLException {

    dataSource = new HikariDataSource();
    dataSource.setDataSource(new com.amazon.redshift.jdbc42.DataSource());
    dataSource.setJdbcUrl(Parameters.REDSHIFT_DB_URL);
    dataSource.setUsername(Parameters.REDSHIFT_DB_USERNAME);
    dataSource.setPassword(Parameters.REDSHIFT_DB_PASSWORD);
    dataSource.setLogWriter(new PrintWriter(System.out));
    dataSource.setMaximumPoolSize(poolSize);
}

public static synchronized Connection getConnection() {
    return dataSource.getConnection();
}

public static void close() {
    dataSource.close();
}
}

我在类路径上添加了JAR for Redshift Driver!

现在的问题是当我打电话时RedshiftConnector.getConnection()出现以下错误:

[com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Error creating Driver, Driver class name incorrect.] with root cause
 java.lang.ClassCastException: com.amazon.redshift.jdbc42.Driver cannot be cast to com.amazon.dsi.core.interfaces.IDriver
    at com.amazon.dsi.core.impl.DSIDriverFactory.createDriver(Unknown Source)
    at com.amazon.jdbc.common.AbstractDataSource.doInitialize(Unknown Source)
    at com.amazon.jdbc.common.AbstractDataSource.getSimbaConnection(Unknown Source)
    at com.amazon.jdbc.common.AbstractDataSource.getConnection(Unknown Source)
    at com.amazon.jdbc.common.AbstractDataSource.getConnection(Unknown Source)
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:316)
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:506)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:118)
    at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:94)

谢谢

dk7

我找到了解决方案:

而不是使用setDataSource()

dataSource.setDataSource(new com.amazon.redshift.jdbc42.DataSource());

我们必须使用setDriverClassName()并与AWS Redshift完美配合:

dataSource.setDriverClassName("com.amazon.redshift.jdbc42.Driver");

谢谢

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档