Притворная повторная попытка : Не найден конвертер, способный конвертировать из типа [java.lang.Строка] для ввода [java.lang.КлассРетранслятор>]

#spring-boot #spring-cloud-feign #feign #retry-logic

Вопрос:

Я получаю приведенную ниже ошибку при использовании имитатора повторения. Я использую

io.github.openfeign.притворное ядро -> v10.10.1

io.github.openfeign.притворство-истрикс -> v10.10.1

io.github.openfeign.притворная форма -> v3.8.0

Ошибка притворного повторителя — Не найден конвертер, способный к преобразованию из типа [java.lang.Строка] для ввода [java.lang.КлассРетранслятор>]

У меня есть следующая конфигурация в моем приложении yml.

 feign:
  client:
    config:
      default:
        connectTimeout: 60000000
        readTimeout: 60000000
      client-service:
        error-decoder: testservice.exception.FeignClientErrorDecoder
        retryer: testservice.exception.FeignClientRetryer
 

Не удалось привязать свойства в разделе «притворяйся.клиент.конфигурация.клиент-служба.повторитель» к java.lang.КлассРетранслятор>:

 Property: feign.client.config.client-service.retryer
Value: testservice.exception.FeignClientRetryer
Origin: class path resource [application.yml]:56:18
Reason: No converter found capable of converting from type [java.lang.String] to type [java.lang.Class<feign.Retryer>]
 

Экшен:

Обновите конфигурацию вашего приложения

С наилучшими пожеланиями, Руководство

Комментарии:

1. Для этого я следовал приведенной ниже статье: medium.com/swlh/…

Ответ №1:

Предварительное условие для того, чтобы ваш код выполнялся как есть:

  • FeignClientRetryer должно осуществляться feign.Retryer
  • FeignClientRetryer должно быть @Component , стереотип на первом месте в классе.
  • @FeignClient следовало бы value="client-service"

Если он все еще не запускается, то вы можете попробовать это:

  1. Удалить @Component из FeignClientRetryer
  2. Определите класс конфигурации:
 public class ClientServiceFeignConfig{

    @Bean
    public Retryer clientServiceRetryer(){
        return new FeignClientRetryer();
    }
}
 
  1. И, в довершение client-service всего , добавьте:
 @FeignClient(value="client-service", configuration = ClientServiceFeignConfig.class)