Ошибка метода RestTemplate.exchange: не применяются аргументы - PullRequest
0 голосов
/ 25 января 2019

Я вижу сообщение об ошибке при попытке запустить пример программы при загрузке Sprint при использовании Spring Suite на основе Eclipse. У меня установлен Mac JDK11, который я сейчас использую

Сообщение об ошибке: Обмен методом (URI, HttpMethod, HttpEntity, Class) в типе RestTemplate не применим для аргументов (URI, Http.HttpMethod, HttpEntity, Class)

Первоначально метод обмена был в такой форме: exchange(url,HttpMethod.GET, null, String.class);

Когда URL был строкой. Поскольку метод требует URI объекта, я изменил код. Также в поисках решения я также преобразовал нулевой параметр в объект.

public String secondWayOfCalling() {
    RestTemplate template = builder.build();
    List<ServiceInstance> instances= clientOnly.getInstances("client-service-name");

    URI uri = instances.get(0).getUri();
    ResponseEntity<String> entity = template.exchange(uri, HttpMethod.GET, 
            new HttpEntity<String>("parameters"), String.class);

    return entity.getBody();
}

1 Ответ

0 голосов
/ 25 января 2019

Ваш код выглядит правильно, если вы получите такую ​​ошибку, я уверен, что вы испортили свой импорт, проверьте, что ваши используемые классы приходят из следующих пакетов:

import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import java.net.URI;

Могу поспорить, ваш класс URI приходитот неправильного.

...