无法为请求处理程序'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 的帮助下重新定位这些文件?或任何其他解决方法,有人发现了吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)