0

addAnnonceInputで受信したメッセージ1を返すにはどうすればいいですか?そのメッセージをクライアントに返す必要があります。Spring Cloud Stream RabbitMQ

@RequestMapping(method = RequestMethod.POST, value = "/annonces") 
public void addAnnonce(@RequestBody AnnonceWrapper annonceWrapper) { 
    System.out.println(annonceWrapper.toString()); 
    final Message<AnnonceWrapper> message = MessageBuilder 
                .withPayload(annonceWrapper) 
                .setReplyChannel(messageStream.acceptDemandeInput()) 
                .build(); 
    messageStream.addAnnonceOutput().send(message); 
    messageStream.acceptDemandeInput().subscribe(message1 -> System.out.println(message1.getPayload().toString())); 
} 

答えて

0

これは、Spring Cloud Streamの珍しい使用です。あなたはおそらく、Spring Integrationを直接使用する方が良いでしょうし、Messaging Gatewayが応答を待つほうがいいでしょう。

これを手動で行う場合は、CountDownLatchまたはFuture<?>を使用して、応答が受信されるまで(またはタイムアウトが発生するまで)HTTPスレッドを中断する必要があります。

関連する問題