0

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

我的属性文件包含:

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

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

我的配置类如下:

@ComponentScan
@EnableAutoConfiguration
public class Application {


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

我的听众课:

@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());

    }

}

但是,似乎什么都没有打印出来。我已验证我的队列位于正确的区域,并且队列上有一条消息可以接收。

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

4

1 回答 1

0

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

  1. 组件扫描器不扫描 OrderListener 类。为了被扫描,这个类必须和你的Application类在同一个包中或者在一个子包中。
  2. 您的类路径中缺少 spring-cloud-aws-autoconfigure 工件,因此不会自动配置 AmazonSQS 客户端并且未注册队列。
  3. 您在队列中的消息缺少值为application/json的消息标头contentType(有关此问题的更多信息,请参阅问题Spring Cloud - SQS)。
于 2015-01-24T09:16:08.120 回答