2014-12-31 42 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