【发布时间】:2018-07-27 07:32:28
【问题描述】:
我们使用带有 postgres 数据源的 Wildfly 10(postgres 驱动程序在 /modules 文件夹中提供),此外,还应附加一个 Redshift DB。
所以我关注了Configure a JDBC Connection with Apache Maven :
因此,我的父 POM 包括:
<repositories>
...
<repository>
<id>redshift</id>
<url>http://redshift-maven-repository.s3-website-us-east-1.amazonaws.com/release</url>
</repository>
</repositories>
和
<dependencies>
...
<dependency>
<groupId>com.amazon.redshift</groupId>
<artifactId>redshift-jdbc42</artifactId>
<version>1.2.10.1009</version>
</dependency>
</dependencies>
如果我知道部署我的 .war 文件,日志中很早就会出现以下警告:
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-3) WFLYJCA0004: Deploying JDBC-compliant driver class org.h2.Driver (version 1.4)
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-3) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.2)
WARN [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-3) WFLYJCA0003: Unable to instantiate driver class "com.amazon.redshift.jdbc.Driver": java.lang.NoClassDefFoundError: com/amazon/redshift/core/jdbc42/PGJDBC42DriverImpl
所以难怪以后,如果我尝试访问数据库,我会得到
ERROR [stderr] (default task-64) java.sql.SQLException: No suitable driver found for jdbc:redshift://....
ERROR [stderr] (default task-64) at java.sql.DriverManager.getConnection(DriverManager.java:689)
ERROR [stderr] (default task-64) at java.sql.DriverManager.getConnection(DriverManager.java:208)
那我做错了什么?驱动打包在 .war 中,这是肯定的,否则,在部署期间将不会尝试实例化它。 任何帮助都非常感谢!
【问题讨论】:
标签: java jdbc amazon-redshift