Hystrix的IllegalStateException

时间:2015-02-03 11:07:26

标签: java spring-aop hystrix

我是Hystrix的新手。我试图将它与Spring AOP一起使用。以下详细介绍了我想要实现的目标。

有一个“ServiceClass”,其中注入了一些RestClient类。我正在使用Spring。现在,我想将Hystrix与Spring AOP一起使用,以便可以同步或异步地从ServiceClass调用RestClient。

到目前为止,我所做的工作如下:

创建了一个扩展HystrixCommand的类“MyCommand”,实现了MethodInterceptor

在其中实现了一个方法“execute(MethodInvocation m,String mode),如下所示:

                      protected Object execute(MethodInvocation m, String mode){
                      this.mode = mode;
                      this.method = m;
                      return execute();}
<重写方法中的

“调用”

                       public Object invoke(MethodInvocation m) throws throwable{
                         try{
                              execute(m,"Sync");
                         } catch(Exception e){
                             e.printStackTrace();
                         }
                        }

这个“MyCommand”被设置为spring-config文件中“ServiceClass”的AOP拦截器。

现在,问题是;在我的“主”应用程序中,当我从ClassPathXmlApplicationContext检索“ServiceClass”并调用一个方法时,它工作正常。但是,如果我尝试调用“ServiceClass”的两个方法,它会抛出以下异常:

              *java.lang.IllegalStateException: This instance can only be executed once. Please instantiate a new instance.*

代码段:

              ServiceClass srvc = (ServiceClass) ctx.getBean("proxy");
              srvc.getRequest();
              srvc.postRequest(); 

我花了将近三天的时间试图找出这个例外的原因和解决方案,但没有任何好处。请帮我解决这个问题。我错过了什么?

一如既往 提前致谢

0 个答案:

没有答案