7

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 バージョンを使用しています。

4

1 に答える 1

11

Jackson は、SQS メッセージcontentTypeでヘッダーに値が設定されている場合にのみ使用されます。application/jsonそうしないと、コンバーターはメッセージのペイロードに含まれるコンテンツの種類を認識できず、適切なコンバーターを選択できません。

参考アプリQueueMessagingTemplate#convertAndSendのように使えば、ヘッダーは自動で設定されます。contentType

于 2015-01-03T11:08:12.017 に答える