0

Wie kann ich die von addAnnonceInput empfangene Nachricht1 zurückgeben, muss ich diese Nachricht an den Client zurückgeben.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())); 
} 

Antwort

0

Dies ist eine ungewöhnliche Verwendung von Spring Cloud Stream; Sie wären wahrscheinlich besser dran mit Spring Integration direkt, und eine Messaging Gateway auf die Antwort warten.

Wenn Sie dies manuell tun, müssen Sie CountDownLatch oder Future<?> verwenden, um den HTTP-Thread zu unterbrechen, bis die Antwort empfangen wird (oder ein Timeout auftritt).

Verwandte Themen