Несколько симулированных клиентов с разными кодировщиками ошибок в одном приложении Spring - PullRequest
0 голосов
/ 12 октября 2019

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

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.client.ClientFirst': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'feign.codec.ErrorDecoder' available: expected single matching bean but found 2: errorDecoder,ClientFirstErrorDecoder

// First configuration

@RequiredArgsConstructor
@Service
@Slf4j
public class ClientFirstConfiguration {

    @Bean(name = "ClientFirstErrorDecoder")
    public ErrorDecoder errorDecoder() {
          // omitted for brevity
        };
    }
}

// Second configuration

@RequiredArgsConstructor
@Service
@Slf4j
public class ClientSecondConfiguration {

    public ErrorDecoder errorDecoder() {
          // omitted for brevity
        };
    }
}

// First client

@FeignClient(
        name = "feign.client.config.first",
        url = "${first.url}",
        configuration = {
                FeignDefaultConfiguration.class,
                ClientFirstConfiguration.class
        }
)
@Headers({"Content-Type: application/json"})
public interface ClientFirst {
// omitted for brevity
}

// Second client

@FeignClient(
        name = "feign.client.config.second",
        url = "${second.url}",
        configuration = {
                FeignDefaultConfiguration.class,
                ClientSecondConfiguration.class
        }
)
@Headers({"Content-Type: application/json"})
public interface ClientSecond {
// omitted for brevity
}
...