Spring-Cloud Hystrix(找不到后备方法)

Tia*_*sta 6 hystrix spring-cloud-netflix

我正在尝试使用hyst但是当调用save方法时,它会使用resttemplate发布一个帖子,它会出现以下异常:

未找到备用方法:com.netflix.hystrix.contrib.javanica.exception.FallbackDefinitionException断路器([类com.wnb.mastercard.domain.enroll.EnrollCommand])

有人能帮我吗?

@Component
public class EnrollRepositoryRest {

    @Autowired
    private RestTemplate template;

    @Value("${beblue-card-enroll.url}")
    private String url;

    public Enroll getEnrollByCardId(String cardId) {

        Enroll[] enroll = template.getForObject(url + "cardEnroll/enroll/" + cardId, Enroll[].class);

        return enroll[0];
    }

    @HystrixCommand(fallbackMethod = "breaker")
    public void save(EnrollCommand command) {
        template.postForObject(url + "/cardEnroll/enroll", command, EnrollCommand.class);
    }

    public String breaker() {
        System.out.println("HYSTRIX EXECUTADO");
        return "Hystrix is Ok";
    }
}
Run Code Online (Sandbox Code Playgroud)

Ram*_*ius 13

我认为例外情况清楚地告诉你这个问题.方法:

public String breaker(EnrollCommand command) {
    System.out.println("HYSTRIX EXECUTADO");
    return "Hystrix is Ok";
}
Run Code Online (Sandbox Code Playgroud)

不存在.(注意签名中的参数)

使用该批注定义回退方法时,回退方法必须与定义Hystrix命令的方法的相同参数匹配.

  • 它有效,断路器方法和回退方法应该具有相同的参数 (2认同)