java – Spring Cloud – SQS

前端之家收集整理的这篇文章主要介绍了java – Spring Cloud – SQS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用 Spring Cloud框架来处理一个简单的队列处理程序.我成功地让消息处理程序轮询队列,但是.我看到的问题是,当我向队列发布消息时,我的处理程序无法将有效负载解组到所需的java对象中.
@MessageMapping("MyMessageQueue")
@SuppressWarnings("UnusedDeclaration")
public void handleCreateListingMessage(@Headers Map<String,String> headers,MyMessage message) {
    //do something with the MyMessage object
}

我得到的错误

No converter found to convert to class MyMessage

据我了解,@ MessageMapping应该使用Jackson将我的JSON有效负载解组为MyMessage对象.然而它抱怨它找不到转换器.

有人遇到过这个吗?

我正在使用Spring Cloud的1.0.0.BUILD-SNAPSHOT版本.

解决方法

只有在SQS消息上使用值application / json设置了contentType标头时才使用Jackson.否则,转换器不知道消息的有效负载中包含什么类型的内容,并且不能选择正确的转换器.

如果您在reference application中使用QueueMessagingTemplate#convertAndSend,则会自动设置contentType标头.

猜你在找的Java相关文章