SqsListner不收听消息

时间:2019-08-13 06:06:08

标签: amazon-sqs

我具有以下用于连接的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);

    }
}

1 个答案:

答案 0 :(得分:1)

由于错误,我已经覆盖了AmazonSQSAsync bean

public AmazonSQSAsync amazonSQSClient() {
        return new AmazonSQSAsyncClient();
    }

这导致忽略了我添加的aws属性。因此SqsListner无法正常工作,因为无法明确指定aws属性,包括SqsListner的凭据。

相关问题