I run a call to an endpoint that is off, however the hystrix does not execute the fallback method, and throws an exception:
java.util.concurrent.ExecutionException: org.springframework.web.client.ResourceAccessException:
I/O error on GET request for "http://localhost:8080/wallet/customers/100/cards/": Conexão recusada (Connection refused); nested exception is java.net.ConnectException: Conexão recusada (Connection refused)
Anyone know if any configuration is missing?
My main
@EnableCircuitBreaker
@SpringBootApplication
public class WalletPaymentApplication {
public static void main(String[] args) {
SpringApplication.run(WalletPaymentApplication.class, args);
}
}
and my service:
public PaymentMethodsData setUpPaymentMethods(String customerId) {
return new PaymentMethodsData(getCardList(customerId));
}
@HystrixCommand(fallbackMethod = "getCardListCircuitBreaker")
public List<SummaryCardData> getCardList(String customerId) {
return template.getForObject(configureUrl(cardUrl), CardRows.class, customerId).getRows();
}
public List<SummaryCardData> getCardListCircuitBreaker(String customerId){
return new ArrayList<>();
}
To enable @HystrixCommand(fallbackMethod = "getCardListCircuitBreaker")
you have to call your method from another bean. Then annotation will work properly.