spring-cloud-stream spring-boot appにメッセージを取得する際に問題があります。 私はメッセージエンジンとしてrabbitMqを使用しています。 メッセージプロデューサは、Spring RestTemplateを使用してメッセージを送信する、非スプリングブートアプリケーションです。Springクラウドストリームは、Spring RestTemplateを使用してRabbitMqに投稿されたメッセージを解析できません。
キュー名:コンシューマアプリケーションがそのキューを聞くために、セットアップで「audit.logging.rest」
。このアプリはspring-boot app(spring-cloud-stream)です。以下
コンシューマーコード
application.yml
cloud:
stream:
bindings:
restChannel:
binder: rabbit
destination: audit.logging
group: rest
AuditServiceApplication.java
@SpringBootApplication
public class AuditServiceApplication {
@Bean
public ByteArrayMessageConverter byteArrayMessageConverter() {
return new ByteArrayMessageConverter();
}
@Input
@StreamListener(AuditChannelProperties.REST_CHANNEL)
public void receive(AuditTestLogger logger) {
...
}
AuditTestLogger.java
あります以下は、JSON形式でプロデューサーアプリケーションから送信されるリクエストです。
{"applicationName" : "AppOne" }
問題の発見カップル: Issue1:春 - クラウドストリームが解析できないよう 私が気づいたことは、以下の方法では、メソッドのパラメータは、Objectとして言及されている場合にのみトリガーなっていますメッセージをJava POJOオブジェクトに挿入します。
@Input
@StreamListener(AuditChannelProperties.REST_CHANNEL)
public void receive(AuditTestLogger logger) {
Issue2:私は、オブジェクトを受信する方法を変更し
。オブジェクトは、解析できないRMQTextMessage型であることがわかります。しかし、私はテキストのプロパティに対して実際に投稿されたメッセージを表示します。
私はByteArrayMessageConverterを書いていましたが、これは助けにもならなかったものです。
春のクラウドストリームにMessageConverterを使用してRMQTextMessageからメッセージを抽出し、実際のメッセージを取得する方法はありますか?
事前のおかげで..
プロデューサーアプリケーションには、rabbitMqクライアントの既存の統合があります。私は、私の新しいプロジェクトの春の雲を使いたいと思っていました。しかし、私はAMQPの使用を試みます。ありがとう – chmk
プロデューサーアプリケーションでRabbitTemplateを使用した後で動作しました。 Artemに感謝します。 – chmk
素晴らしい!だから答えを受け入れる時間:http://stackoverflow.com/help/someone-answers –