我正在尝试将我的一项服务从 Spring Boot 2.7.x 升级到 Spring Boot 3.x
当前版本:
春季启动:3.3.0
爪哇:21
春季 AWS 云:3.1.1
不幸的是,@SqsListener 不起作用,我没有收到来自任何队列的任何消息。
build.gradle 文件看起来像这样
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.0'
id 'io.spring.dependency-management' version '1.1.5'
}
repositories {
mavenCentral()
}
ext {
set('springCloudVersion', "2023.0.1")
set('springCloudAwsVersion','3.1.1')
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'io.awspring.cloud:spring-cloud-aws-starter'
implementation 'io.awspring.cloud:spring-cloud-aws-starter-sqs'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
mavenBom "io.awspring.cloud:spring-cloud-aws-dependencies:${springCloudAwsVersion}"
}
}
Java代码:
@SqsListener(value = "${sqs.queue}", acknowledgementMode = ON_SUCCESS)
public void consumeMessage(String payload) {
doSomething(payload);
}
我还尝试创建 SqsAsyncClient 和 SqsMessageListenerContainerFactory 的 bean,尽管它们不是必需的,但我仍然无法接收有效负载。
@Bean
public SqsAsyncClient sqsAsyncClient() {
return SqsAsyncClient.builder().region(Region.AP_SOUTH_1).build();
}
@Bean
public SqsMessageListenerContainerFactory<Object> defaultSqsListenerContainerFactory() {
return SqsMessageListenerContainerFactory
.builder()
.sqsAsyncClient(sqsAsyncClient())
.build();
}
我也尝试将 Spring Boot 降级到 3.2.5 但仍然是同样的问题。
我在这里缺少什么吗?
预先感谢。
我对 spring boot 版本 3.3.1 和 spring-cloud-aws-sqs 3.1.0 也有同样的问题
我在队列中发送了消息,但消费者什么也没收到