package org.bk.consumer.ribbon; import com.google.common.collect.Maps; import org.bk.consumer.domain.Message; import org.bk.consumer.domain.MessageAcknowledgement; import org.bk.consumer.feign.PongClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.client.RestOperations; @Service("restTemplateDirectPongClient") public class RestTemplateDirectPongClient implements PongClient { private final RestOperations restTemplate; @Autowired public RestTemplateDirectPongClient(@Qualifier("nonLoadbalancedRestTemplate") RestOperations restTemplate) { this.restTemplate = restTemplate; } @Override public MessageAcknowledgement sendMessage(Message message) { String pongServiceUrl = "http://localhost:8082/message"; HttpEntity<Message> requestEntity = new HttpEntity<>(message); ResponseEntity<MessageAcknowledgement> response = this.restTemplate.exchange(pongServiceUrl, HttpMethod.POST, requestEntity, MessageAcknowledgement.class, Maps.newHashMap()); return response.getBody(); } }