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());
}
}
但是,似乎什么也没有打印出来。我已验证我的队列位于正确的区域,并且队列中有一条消息已准备好接收。
有人可以提供一些指导吗?
我看到它不起作用的三个可能原因
- 组件扫描器未扫描 OrderListener class。为了被扫描,此 class 必须与您的 Application class 或 sub-package.
在同一个包中
- 您的 class 路径中缺少 spring-cloud-aws-autoconfigure 工件,因此不会自动配置 AmazonSQS 客户端并且 queue 不会注册。
- 您 queue 中的消息缺少一条消息 header contentType 值为 application/json(有关此问题的更多信息,请参阅问题 Spring Cloud - SQS)。
我正在尝试让 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());
}
}
但是,似乎什么也没有打印出来。我已验证我的队列位于正确的区域,并且队列中有一条消息已准备好接收。
有人可以提供一些指导吗?
我看到它不起作用的三个可能原因
- 组件扫描器未扫描 OrderListener class。为了被扫描,此 class 必须与您的 Application class 或 sub-package. 在同一个包中
- 您的 class 路径中缺少 spring-cloud-aws-autoconfigure 工件,因此不会自动配置 AmazonSQS 客户端并且 queue 不会注册。
- 您 queue 中的消息缺少一条消息 header contentType 值为 application/json(有关此问题的更多信息,请参阅问题 Spring Cloud - SQS)。