我能够发送消息到SQS队列,但不能使用sqslistener注释,有人能帮忙吗?
public void send(String message) {
queueMessagingTemplate.convertAndSend("test-queue", MessageBuilder.withPayload(message).build());
}
@SqsListener(value = "test-queue", deletionPolicy = SqsMessageDeletionPolicy.NEVER)
public void receive(String message)
{
System.out.println("message: " + message);
}我已经验证了发送到AWS控制台,我可以看到我的消息在队列中,但他们不会来接收方法。配置:
@Bean
public AmazonSQSAsyncClient amazonSQSAsyncClient()
{
AmazonSQSAsyncClient amazonSQSAsyncClient= new AmazonSQSAsyncClient(amazonAWSCredentials());
if (!StringUtils.isEmpty(amazonSqsEndpoint)) {
amazonSQSAsyncClient.setEndpoint(amazonSqsEndpoint);
}
}
@Bean
public SimpleMessageListenerContainerFactory simpleMessageListenerContainerFactory() {
SimpleMessageListenerContainerFactory msgListenerContainerFactory = new SimpleMessageListenerContainerFactory();
msgListenerContainerFactory.setAmazonSqs(amazonSQSAsyncClient());
return msgListenerContainerFactory;
}
@Bean
public QueueMessagingTemplate queueMessagingTemplate(AmazonSQSAsync amazonSqs) {
return new QueueMessagingTemplate(amazonSQSAsyncClient());
}
@Bean
public BasicAWSCredentials amazonAWSCredentials() {
return new BasicAWSCredentials(amazonAWSAccessKey, amazonAWSSecretKey);
}发布于 2017-05-11 09:04:36
结果,我在SQS控制台和代码中的队列名中出现了错误,这是我的错误。
发布于 2021-07-10 17:49:10
虽然很晚了,但可能对某人有帮助。在我的例子中,我使用gradle进行以下配置
implementation "io.awspring.cloud:spring-cloud-starter-aws-messaging:2.3.0"
implementation "io.awspring.cloud:spring-cloud-aws-dependencies:2.3.0"它不起作用,下面的工作对我来说是完美的:
compile "io.awspring.cloud:spring-cloud-starter-aws-messaging:2.3.0"
compile "io.awspring.cloud:spring-cloud-aws-dependencies:2.3.0"发布于 2022-07-04 16:59:39
在我的例子中,我缺少了配置类中的注释@EnableSqs。
https://stackoverflow.com/questions/43805823
复制相似问题