1

我正在尝试启动正在写入 SQS 队列的 spring-int-aws 流,但不会加载上下文。

Error starting ApplicationContext. To display the auto-configuration report
re-run your application with 'debug' enabled.
2016-10-03 14:10:51.848 ERROR 3741 --- [           main]     
o.s.boot.SpringApplication               : Application startup failed

org.springframework.beans.factory.BeanCreationException: Error creating bean     
with name 'org.springframework.integration.aws.outbound.SqsMessageHandler#0':    
Bean instantiation via constructor failed; nested exception is 
org.springframework.beans.BeanInstantiationException: Failed to instantiate  
[org.springframework.integration.aws.outbound.SqsMessageHandler]: Constructor 
threw exception; nested exception is java.lang.NoSuchMethodError: 
org.springframework.cloud.aws.messaging.core.QueueMessagingTemplate.<init
(Lcom/amazonaws/services/sqs/AmazonSQS;Lorg/springframework/cloud/aws/core/env/ResourceIdResolver;)V
....

做了一些研究:在 SQSMessageHandler (v 1.0.0-RELEASE) 内部,它尝试使用已声明的 AmazonSQS 对象创建 QueueMessagingTemplate,但是 QueueMessagingTemplate (v1.1.3 Release) 它需要构造函数中的 AmazonSQSAsync 对象。由于 spring-cloud-aws 使用子接口,看来 spring-int-aws 也应该如此。

我是否遗漏了什么,或者这应该是针对该项目提出的问题?

4

1 回答 1

1

spring-integration-aws 是针对 1.1.1 构建的。

请在那里打开一个问题,以便我们可以进行兼容的构建。

也就是说,Spring 项目在单点发布中破坏 API 是很不寻常的,所以我们也应该为 spring-cloud-aws 提出一个问题,要求他们恢复另一个 ctor(如果可能),并交叉链接这些问题.

我打开了问题

在 spring-integration-aws 中做任何事情之前,我们会等待该问题的处理(但我们仍然应该继续并支持 async 选项)。

于 2016-10-03T21:21:58.473 回答