我正在使用 2 个亚马逊提供的库:redshift-jdbc42-1.2.27.1051
and aws-java-sdk-core-1.11.600
。两个库都定义了一个类AWSCredentialsProvider
包装下com.amazonaws.auth
。当我尝试使用我的应用程序时,出现以下异常:
Caused by: java.lang.SecurityException: class "com.amazonaws.auth.AWSCredentialsProvider"'s signer information does not match signer information of other classes in the same package
我不知道如何解决这个问题。任何帮助,将不胜感激!
我发现在 Amazon 的 Redshift JDBC 驱动程序文档中,他们说:
如果您对数据库使用 Amazon Redshift JDBC 驱动程序
身份验证,您必须具有 AWS SDK for Java 1.11.118 或更高版本
你的 Java 类路径。如果您没有安装适用于 Java 的 AWS 开发工具包,
您可以使用包含 AWS 开发工具包的驱动程序。
该问题是由于现在我拥有两个库提供的 AWS SDK 组件而引起的。现在,我不需要与驱动程序一起打包的 AWS 开发工具包,因为我可以从 AWS S3 开发工具包中使用它。事实上,Amazon 鼓励开发人员在没有预打包 SDK 的情况下使用 Redshift JDBC 驱动程序:
重要的
我们强烈建议使用 Amazon Redshift JDBC 驱动程序不包含 AWS 开发工具包如果可能的话。
如果您遇到此问题并从 Maven 下载依赖项,您可以在此处找到非 aws-sdk 驱动程序:https://mvnrepository.com/artifact/com.amazon.redshift/redshift-jdbc42-no-awssdk https://mvnrepository.com/artifact/com.amazon.redshift/redshift-jdbc42-no-awssdk
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)