0

如何返回addAnnonceInput接收到的message1,我需要將該消息返回給客戶端。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等待答覆。

以這種方式手動執行此操作,您需要使用CountDownLatchFuture<?>來掛起HTTP線程,直到收到響應(或發生某種超時)爲止。

相關問題