amazon-sqs - SqsListner 不听消息
问题描述
我有以下 application.properties 用于连接:
cloud.aws.credentials.instanceProfile=true
cloud.aws.credentials.useDefaultAwsCredentialsChain=true
cloud.aws.region.static=us-east-2
cloud.aws.stack.auto=false
我已经使用 SqsListner 编写了侦听器并使用以下依赖项运行我的应用程序
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-aws-messaging</artifactId>
<version>1.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>1.4.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-aws-messaging</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
但不知何故,我的听众没有在听消息(我在现有的代码库中这样做)。
我尝试创建一个单独的 Spring Boot 应用程序,其中只有侦听器,它工作正常。但是当添加到现有代码中时,同样的事情不起作用
监听器代码如下:
@SqsListener(value = "test-queue",deletionPolicy = ON_SUCCESS)
public void receiveMessage(String message,
@Header(X_REQUEST_ID) String xRequestId,
@Header(X_SESSION_ID) String xSessionId) {
LOGGER.info("message received is: {}", message);
}
}
解决方案
我错误地覆盖了 AmazonSQSAsync bean
public AmazonSQSAsync amazonSQSClient() {
return new AmazonSQSAsyncClient();
}
这导致忽略了我添加的 aws 属性。因此 SqsListner 无法正常工作,因为无法明确指定 aws 属性,包括 SqsListner 的凭据。
推荐阅读
- android - Xamarin | 安卓 | 自定义键盘 Android.Views.KeyCode
- bash - 如何从一个文件中获取位于另一个文件的范围列表中的值
- c# - 访问 ASP.NET Core 中间件中的用户凭据
- php - 如何使用 php 从日期范围搜索结果中动态回显列数据的总和?
- rust - 如何在不移出参数的情况下实现 std::ops:{Add, Sub, Mul, Div} 运算符之一?
- ios - ios appium在windows上测试
- php - 使用 REST API PUT 方法进行库存更新会出现错误“内容类型无效”Magento 2
- bunyan - 如何使用 bunyan 序列化程序
- python - 龙卷风重定向超时
- excel - Excel - 基于特定文本值的超链接到另一个工作表