athena jdbc驱动程序版本2.0.15与核心aws sdk不兼容?

oxiaedzo  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(301)

我们将标准的javaawsdk用于其他aws服务,使用 BasicAWSCredentials 用于身份验证。对于athena集成,我们使用标准的aws athena jdbc驱动程序。这一直运行良好,但当升级到最新的雅典娜jdbc驱动程序版本(2.0.15)时 BasicAWSCredentials 应用程序的其他部分停止工作
我们得到的错误消息是:

class "com.amazonaws.auth.BasicAWSCredentials"'s signer information does not match signer information of other classes in the same package

据我所知,这个错误消息是由同一个包中的不同类从不同的jar加载引起的,这些jar的签名方式不同。事实上:maven的核心sdk jar没有签名,而是2.0.15 athena jdbc驱动程序jar(由于一些模糊的原因,它包括。 com.amazonaws.auth.AWSCredentials 以及 com.amazonaws.auth.AWSCredentialsProvider )由“amazon.com服务有限责任公司”签署。
这意味着jvm可能(可能取决于类路径顺序)尝试加载 com.amazonaws.auth.AWSCredentials 来自jdbc驱动程序jar,但是 com.amazonaws.auth.BasicAWSCredentials 类是在aws java sdk核心jar中定义的,即jvm被告知从不同签名的jar加载同一个包中的不同类。
一句话:把 com.amazonaws.auth 类,特别是因为这个jar是在最新版本中签名的。jvm(jdk 11)将不接受从这个包加载不同的类,除非所有jar都以相同的方式签名。
想法/解决方法?我不想篡改任何外部jar。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题