如何解决无法为请求处理程序'com.amazonaws.services.sqs.QueueUrlHandler'
我正在使用 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 的帮助下重新定位这些文件?或任何其他解决方法,有人发现了吗?
解决方法
我已经使用这个命令更新了最终的 jar 文件,一旦 maven 构建部分完成,就会在构建管道中。
__init__.py
我在构建服务器上放置了一个经过编辑的“request.handlers”,并使用此命令替换了现有的内部 jar。
https://docs.oracle.com/javase/tutorial/deployment/jar/update.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。