Spring 云 aws(消息传递)- 未收到消息

Spring cloud aws (messaging) - not getting message

我正在尝试让 spring 云使用自动配置来处理消息传递。

我的属性文件包含:

cloud.aws.credentials.accessKey=xxxxxxxxxx
cloud.aws.credentials.secretKey=xxxxxxxxxx

cloud.aws.region.static=us-west-2

我的配置class如下:

@ComponentScan
@EnableAutoConfiguration
public class Application {


public static void main(String[] args) throws Exception {
    SpringApplication.run(Application.class, args);
  }
}

我的听众class:

@RestController
public class OrderListener {

@MessageMapping("orderQueue")
public void orderListener(Order order){

    System.out.println("Order Name " + order.getName());
    System.out.println("Order Url" + order.getUrl());

    }

}

但是,似乎什么也没有打印出来。我已验证我的队列位于正确的区域,并且队列中有一条消息已准备好接收。

有人可以提供一些指导吗?

我看到它不起作用的三个可能原因

  1. 组件扫描器未扫描 OrderListener class。为了被扫描,此 class 必须与您的 Application class 或 sub-package.
  2. 在同一个包中
  3. 您的 class 路径中缺少 spring-cloud-aws-autoconfigure 工件,因此不会自动配置 AmazonSQS 客户端并且 queue 不会注册。
  4. 您 queue 中的消息缺少一条消息 header contentType 值为 application/json(有关此问题的更多信息,请参阅问题 Spring Cloud - SQS)。