HystrixCommand注释不适用于类型变量

时间:2017-07-20 20:56:21

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

我在抽象的父服务类中使用类型变量,我有一些服务方法。我正在使用@HystrixCommand注释来使用一些回退方法。

这是我的示例代码

@Service
public abstract class MyAbstractParentClass<T extends IModel<T>,S extends Serializable> implements IService<T, S>, InitializingBean{


private MyRepo<T, S > repo;

@Override
@HystrixCommand(fallbackMethod="handleError", groupKey="MyClass", commandKey="findUserTest")
public T findUserTest(S userId){
    String str = null;
    System.out.println(str.length());// intentional nullpointer exception
    T user  = repo.findOne(userId);
    return user;
}

public T handleError(S userId){
    T user  = repo.findOne(userId);
    return user;
}

public abstract MyRepo<T, S> getRepository();

@Override
public void afterPropertiesSet() throws Exception {
    repo = getRepository();

}
}

但不幸的是,在使用注释后我的api无法正常工作,它会给出以下java堆空间错误。

{ "timestamp": 1500581418921, "status": 500, "error": "Internal Server Error", "exception": "java.lang.OutOfMemoryError", "message": "Java heap space", "path": "/rest/api/path" }

如果我不使用任何类型变量,它在父类

中工作正常
@HystrixCommand(fallbackMethod="handleError", groupKey="MyClass", commandKey="findUserTest")
public String findUserTest(String userId){
    String str = null;
    System.out.println(str.length());

    return userId;
}

public String handleError(String userId){

    return "Error Handled";
}

如果我在任何子类服务方法中使用此注释,则回退机制正常工作 任何帮助将不胜感激

0 个答案:

没有答案