当使用HystrixCommand注释的方法调用另一个抛出异常

时间:2017-11-12 16:26:48

标签: java spring-boot spring-cloud-netflix hystrix

我有一个抽象类

public abstract class A {
    public String makeSomething(String ingredients){
        throw new RuntimeException("Can't Make anything");
    }
}

这个类是在另一个B类(Spring Service)中实现的,它通过传递Ingredients来在许多自己的方法中使用makeSomething。 B类中的每个方法都使用HystrixCommand进行注释,并为其定义了回退。这是它的样子

@Service
public class B extends A {    
    @HystrixCommand(fallbackMethod = "doNothing")
    public void makeTea(String ingredients){
        makeSomething(ingredients);
    }

    public void doNothing(String ingredients){
        System.out.println("Doing Nothing");
    }

}

现在,当调用来自类B的makeTea时,它会从类A调用makeSomething,然后抛出异常。这应该包装为HystrixRuntimeException,然后应该调用fallback。但我看到RunTimeException(" Can' t make any")。

1 个答案:

答案 0 :(得分:2)

根据您的描述,我会说,Hystrix未启用。

@EnableHystrix注释添加到Application类,以便启用注释处理。

如果您启用了该功能,请提供更完整的示例,以便重现错误。