POJO を使用して spring amqp を介して基本的な要求/応答メッセージングをセットアップしました。これらは JSON メッセージコンバーターを介して RabbitMQ で交換されます。
これまでの応答 pojo のペイロードは単純な文字列でしたが、今では画像を返信する必要があります。
Q1) これを処理する最善の方法は何ですか? JSON メッセージのペイロード文字列として画像を base64 エンコードする必要がありますか?
Q2) 単純に画像を BytesMessage として返すことは可能ですか?
Q2.a) spring-amqp は、POJO を返すリスナーと BytesMessage を返すリスナーの 2 つの別個のリスナーを処理できますか? 私はそうは思わないでしょうが、ここに私が求めているものの周りの疑似コードがあります:
<listener-container>
<listener ref="requestHandlerA" method="handleMessage" queue-names="#{requestQueue.name}" />
<listener ref="requestHandlerB" method="handleMessage" queue-names="#{requestQueue.name}" />
</listener-container>
public class RequestHandlerA {
public ResponseDelegatePojo handleMessage(RequestDelegatePojo requestDelegate) {...}
}
public class RequestHandlerB {
public BytesMessage handleMessage(RequestDelegatePojo requestDelegate) {...}
}
Q2.b) または ... MessageListener がオブジェクトを返す場合 (POJO の場合もあれば、BytesMessage の場合もある) ... spring-amqp フレームワークは、実行時にそれに応じて調整して、シリアル化された POJO を送り返すことができますか?場合によっては json として、場合によっては BytesMessageをそのままにしますか?