【发布时间】:2021-08-26 12:41:58
【问题描述】:
我正在使用 aws-java-sdk-sqs 依赖项从 SQS 读取消息,出于项目原因,我们将 AWS 依赖项重新定位到最终 jar 内的不同包结构中:
<relocation>
<pattern>com.amazonaws</pattern>
<shadedPattern>com.shaded.amazonaws</shadedPattern>
</relocation>
我正在使用代码创建 SQS 客户端
AmazonSQS amazonSQS = AmazonSQSClientBuilder.standard().withRegion(region).build();
我收到此代码错误:
com.shaded.amazonaws.AmazonClientException: Unable to instantiate request handler chain for client: Unable to instantiate request handler chain for client. Listed request handler ('com.amazonaws.services.sqs.QueueUrlHandler') does not implement the interface com.shaded.amazonaws.handlers.RequestHandler API.
更新------------------------------- ---------------------------------->
原因:
这个问题是因为
requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/sqs/request.handlers"));
requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/sqs/request.handler2s"));
这些文件“request.handlers”包含完全限定的处理程序名称。迁移时哪个 maven shade 插件没有处理。
有没有什么方法可以在 maven 的帮助下重新定位这些文件?或者任何其他解决方法,有人发现了吗?
【问题讨论】:
标签: maven amazon-sqs maven-shade-plugin aws-java-sdk