2014-12-31 41 views
7

我试图得到一个简单的队列处理程序与Spring框架的云计算工作。我已经成功地获得了消息处理程序轮询队列,但是。我看到的问题是,当我将消息发送到队列时,我的处理程序无法将有效负载解组到所需的java对象中。春云 - SQS

@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应该用杰克逊来解读我的JSON的有效载荷送入一个MyMessage对象。但它抱怨说它找不到转换器。

有没有人遇到过这个?

我使用Spring云的1.0.0.BUILD-快照版本。如果contentType首部设置与上SQS消息值application/json

回答

11

杰克逊时才使用。否则,转换器不知道消息有效载荷中包含的内容类型,并且不能选择正确的转换器。

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

+0

非常感谢清除此了。我可以确认MyMessage对象现在是在添加contentType标头后按预期方式创建的。 – Slihp