2016-07-27 1 views
0

JmsMessagingTemplate.convertSendAndReceive()을 사용하는 클라이언트에서 메시지를 보내고 응답을 기다립니다. 서버 측에 동기식에서 비동기식 JMS 메시지 처리로 변경

messagingTemplate.convertSendAndReceive(myDest, myRequestObj, 
       RequestObj.class); 

, 나는이 : 이것은 잘 작동

@JmsListener(destination = "myDest") 
protected Message<MyResponseObj> handleRequest(final RequestObj requestObj) { 
    return MessageBuilder.withPayload(newMyresponseObj) 
      .setHeader(myHost)).build(); 
} 

.

저는 이것을 지금 비동 사적으로하고 싶습니다. 나는 여전히 서버가 응답을 돌려주기를 원한다. 나는 여전히 클라이언트가 그것을 받기를 원한다. 나는 클라이언트가 응답을 기다리는 것을 원하지 않는다.

클라이언트 쪽에서 MyResponseObj에 대해 @JMSListener을 설정할 수 있습니다. 나는 클라이언트 측에서 convertSendAndReceive가 아닌 JmsMessagingTemplate.convertAndSend()를 호출하도록 변경하겠습니까? 서버 측에서 변경해야합니까 handleRequest()?

클라이언트가 비동기 적으로 응답을받을 수 있도록 설정하려면 어떤 변경이 필요합니까?

답변

0

예, convertAndSend()은 비동기 메시지를 보냅니다. 클라이언트는 응답을 기다리지 않습니다.

서버가 대답을 다른 대기열로 보낼 수 있으며 클라이언트가이를 청취 할 수 있습니다.

대답 -queue에 대해 다른 대상이 필요합니다.

@JmsListener(destination = "question") (서버 측) 및 @JmsListener(destination = "answer") (클라이언트 측).