5

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<>();
}
Tiago Costa
  • 1,004
  • 4
  • 17
  • 31

1 Answers1

11

To enable @HystrixCommand(fallbackMethod = "getCardListCircuitBreaker") you have to call your method from another bean. Then annotation will work properly.

ByeBye
  • 6,650
  • 5
  • 30
  • 63