2016-07-18 5 views
1

У меня есть облако весны, запущенное на моем локальном коте. Я использую feign-клиент для вызова удаленной службы, завернутой внутри команды Hysterix, одной прямой и другой асинхронной, как показано ниже. .Hysterix Javanica AsyncResult Future.get Throwing Exception

@HystrixCommand(fallbackMethod = "fallBackEmployeeCall") 
    public List<EmployeeBean> getEmployees() { 
     //Call through Feign Client 
     return empInterface.getEmployees(); 
    } 

    //Async Version 
    @HystrixCommand(fallbackMethod = "fallBackEmployeeCall") 
public Future<List<EmployeeBean>> getEmployeesAsync() { 
    return new AsyncResult<List<EmployeeBean>>() { 
     @Override 
     public List<EmployeeBean> invoke() { 
      return empInterface.getEmployees(); 
     } 
    }; 
} 

Когда я звоню getEmployeesAsync() получить() я получаю ниже исключения

java.lang.UnsupportedOperationException: AsyncResult это просто удар и не могут быть использованы в качестве полной реализации будущего

это похоже на ниже вопрос: -

[https://github.com/Netflix/Hystrix/issues/1179][1] 

по DOCS решения заключается в настройке HystrixCommandAspect класса, который я сделал, как показано ниже: -

@Configuration 
@EnableAspectJAutoProxy 
public class HystrixConfiguration { 

    @Bean 
    public HystrixCommandAspect hystrixAspect() { 
     return new HystrixCommandAspect(); 
    } 

} 

Но я все еще получаю такое же исключение. Кажется, мне не хватает какой-то конфигурации. Примечание: мой метод синхронизации работает нормально.

+0

Можете ли вы опубликовать код клиента, где вы проверяете invokations? –

ответ

0

вы можете попробовать позвонить getEmployeesAsync в другом классе, который ввел экземпляр класса getEmployeesAsync. У меня тоже было это исключение. Тогда я делаю это так, как это успешно.