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线程,直到收到响应(或发生某种超时)为止。

相关问题