java - 如何在使用 Java SQS SDK 时克服 AWS V1 + V2 不匹配问题
问题描述
我有以下带有以下 Maven 导入的代码:
来自 pom.xml:
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>sqs</artifactId>
<version>2.14.23</version>
</dependency>
代码:(注意这是 AWS V2)
SqsClient sqs = SqsClient.builder()
.region(Region.US_EAST_1)
.build();
我的其余 AWS 代码和导入使用的是 V1。当我在本地运行此代码时没有问题,但是当我通过 Lambda --> step 函数执行它时,我得到以下异常:
错误 software.amazon.awssdk.core.exception.SdkClientException 原因 {“errorMessage”:“无法为客户端实例化执行程序拦截器。”,“errorType”:“software.amazon.awssdk.core.exception.SdkClientException”,“stackTrace” :[“software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:98)”,“software.amazon.awssdk.core.interceptor.ClasspathInterceptorChainFactory.createExecutionInterceptor(ClasspathInterceptorChainFactory.java:140)”, “software.amazon.awssdk.core.interceptor.ClasspathInterceptorChainFactory.createExecutionInterceptorFromResource(ClasspathInterceptorChainFactory.java:95)”、“java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:269)”、“java.util.ArrayList $ArrayListSpliterator。forEachRemaining(ArrayList.java:1384)”、“java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)”、“java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)”、“java .util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)", "java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)... ], "cause": { "errorMessage": “software.amazon.awssdk.services.sqs.internal.MessageMD5ChecksumInterceptor。当前类路径:文件:/var/task/”,“errorType”:“java.lang.ClassNotFoundException”,“stackTrace”:[] } }java:472)"、"java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)"、"java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)...]、"原因”:{“errorMessage”:“software.amazon.awssdk.services.sqs.internal.MessageMD5ChecksumInterceptor。当前类路径:文件:/var/task/”,“errorType”:“java.lang.ClassNotFoundException”,“stackTrace” : [] } }java:472)"、"java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)"、"java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)...]、"原因”:{“errorMessage”:“software.amazon.awssdk.services.sqs.internal.MessageMD5ChecksumInterceptor。当前类路径:文件:/var/task/”,“errorType”:“java.lang.ClassNotFoundException”,“stackTrace” : [] } }ClassNotFoundException", "stackTrace": [] } }ClassNotFoundException", "stackTrace": [] } }
我正在使用 maven shaded 插件来减少我的 JAR 大小,但是,当我在本地运行此代码时,它可以正常工作。知道如何解决这个问题吗?
解决方案
感谢@Susan Mustafa 为我提供解决方案,感谢@Parsifal 为您提供帮助。
正如苏珊链接所建议的那样,我通过在我的 Maven 阴影插件中添加一个过滤器来解决这个问题:
<filter>
<artifact>software.amazon.awssdk:sqs</artifact>
<includes>
<include>**</include>
</includes>
</filter>
推荐阅读
- react-native - 如何在不重新加载导航的情况下使用 react-navigation 更新 React-Native 中的标签栏徽章?
- api - 公开异步系统的公共 API
- facebook - Facebook 业务集成不起作用
- excel - 如何解决 ClosedXML 中的“未找到匹配项”异常
- python - Python OCR IMG 和删除控制字符
- javascript - 如何制作一个包含图像的响应式矩形网格
- vue.js - 在 VueJS 中存储用户令牌的最佳位置在哪里?
- python-3.x - Python:指定类型的文档属性
- c# - 使用 SkiaSharp 在图像中添加文本
- c++ - 返回相同索引的点云的顺序采样