Spring Cloud Stream RabbitMQ

时间:2017-01-30 09:26:27

标签: spring-integration spring-cloud spring-cloud-stream spring-rabbitmq

如何返回addAnnonceInput收到的message1,我需要将该消息返回给客户端。

@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()));
}

1 个答案:

答案 0 :(得分:0)

这是Spring Cloud Stream的一个不寻常的用法;你可能最好直接使用Spring Integration,并Messaging Gateway等待回复。

以这种方式手动执行,您需要使用CountDownLatchFuture<?>暂停HTTP线程,直到收到响应(或发生某些超时)。