2016-12-19 5 views
0

Ich habe die folgende MethodeFederverschluß hystrix Integration

@HystrixCommand(commandKey="operator",fallbackMethod="getFakeResponse",commandProperties = { 
     @HystrixProperty(name = "hystrix.command.operator.execution.isolation.thread.timeoutInMilliseconds", value = "30000") 
}) 
public String getResponse(){ 

    try { 
     Thread.sleep(6000000l); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
    // e.printStackTrace(); 
    } 


    return "the real thing"; 
} 

, wann immer ich versuche, meinen Unit-Test-Code auszuführen, um es zu testen, erhalte ich die folgende Ausnahme

com.netflix.hystrix. contrib.javanica.exception.HystrixPropertyException: Fehler beim Festlegen der Befehlseigenschaften. groupkey: 'HystrixComponentPOC', commandKey: 'Betreiber', threadPoolKey: '' bei com.netflix.hystrix.contrib.javanica.command.GenericSetterBuilder.build (GenericSetterBuilder.java:88) bei com.netflix.hystrix.contrib. javanica.command.AbstractHystrixCommand. (AbstractHystrixCommand.java:52) bei com.netflix.hysttrix.contrib.javanica.command.GenericCommand. (GenericCommand.java:35) bei com.netflix.hystrix.contrib.javanica.command. HystrixCommandFactory.create (HystrixCommandFactory.java:44) bei com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect.methodsAnnotatedWithHystrixCommand (HystrixCommandAspect.java:85) bei sun.reflect.NativeMethodAccessorImpl.invoke0 (native Methode) at sun.reflect.NativeMethodAccessorImpl.invoke (Unbekannte Quelle).210 bei sun.reflect.DelegatingMethodAccessorImpl.invoke (Unknown Source) bei java.lang.reflect.Method.invoke (Unknown Source) bei org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs (AbstractAspectJAdvice.java:629) bei org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod (AbstractAspectJAdvice.java:618) bei org.springframework.aop.aspectj.AspectJAroundAdvice.invoke (AspectJAroundAdvice.java:70) bei org.springframework.aop.framework.ReflectiveMethodInvocation. Fahren Sie fort (ReflectiveMethodInvocation.java:168) unter org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke (ExposeInvocationInterceptor.java:92) unter org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java : 179) bei org.springframework.aop.framework.CglibAopProxy $ DynamicAdvisedInterceptor.intercept (CglibAopProxy.java:655) bei com.masary.topup.HystrixComponentPOC $$ EnhancerBySpringCGLIB $$ 95f9b3dd.getResponse() bei com.masary. topup.refactor.LedgerUpdateTestCases.test (LedgerUpdateTestCases.java:50) bei sun.reflect.NativeMethodAccessorImpl.invoke0 (Mutter Methode) bei sun.reflect.NativeMethodAccessorImpl.invoke (Unknown Source) bei sun.reflect.DelegatingMethodAccessorImpl.invoke (Unbekannte Quelle) bei java.lang.reflect.Method.invoke (Unbekannte Quelle) bei org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall (FrameworkMethod.java:50) bei org.junit.internal.runners.model .ReflectiveCallable.run (ReflectiveCallable.ja va: 12) bei org.junit.runners.model.FrameworkMethod.invokeExplosively (FrameworkMethod.java:47) bei org.junit.internal.runners.statements.InvokeMethod.evaluate (InvokeMethod.java:17) bei org. junit.internal.runners.statements.RunBefores.evaluate (RunBefores.java:26) bei org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate (RunBeforeTestMethodCallbacks.java:75) bei org.springframework.test. context.junit4.statements.RunAfterTestMethodCallbacks.evaluate (RunAfterTestMethodCallbacks.java:86) bei org.springframework.test.context.junit4.statements.SpringRepeat.evaluate (SpringRepeat.java:84) bei org.junit.runners.ParentRunner. runLeaf (ParentRunner.java:325) bei org.springframework.test.context.junit4.SpringJUnit4C lassRunner.runChild (SpringJUnit4ClassRunner.java:252) bei org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild (SpringJUnit4ClassRunner.java:94) bei org.junit.runners.ParentRunner $ 3.laufen (ParentRunner.java:290) bei org.junit.runners.ParentRunner $ 1.schedule (ParentRunner.java:71) bei org.junit.runners.ParentRunner.runChildren (ParentRunner.java:288) bei org.junit .runners.ParentRunner.access $ 000 (ParentRunner.java:58) bei org.junit.runners.ParentRunner $ 2.evaluate (ParentRunner.java:268) bei org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate (RunBeforeTestClassCallbacks.java:61) bei org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate (RunAfterTestClassCallbacks.java:70) bei org.junit.runners.ParentRunner.run (ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run (SpringJUnit4ClassRunner.java:191) bei org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run (JUnit4TestReference.java:86) bei org.eclipse.jdt.internal.junit.runner.TestExecution.run (TestExecution.java:38) um org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:459) bei org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:675) bei org. eclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner.java:382) bei org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:192) verursacht durch: java. lang.IllegalArgumentException: Unbekannte Befehlseigenschaft: hystrix.command.operator.execution.isolation.thread.timeoutInMilliseconds unter com.netflix.hystrix.contrib.javanica.conf.HystrixPropertiesMa nager.initializeProperties (HystrixPropertiesManager.java:125) unter com.netflix.hystrix.contrib.javanica.conf.HystrixPropertiesManager.initializeCommandProperties (HystrixPropertiesManager.java:99) unter com.netflix.hystrix.contrib.javanica.command.GenericSetterBuilder. bauen (GenericSetterBuilder.java:86) ... 47 weitere

jedoch kann ich es erfolgreich mit dem vorbehalten Verhalten führen, wenn ich Anmerkung entfernen und

hystrix.command.operator.execution hinzufügen .isolation.thread.timeoutInMilliseconds = 30000

meiner Properties-Datei

die übrigens die einzige Konfiguration Ich habe @EnableHystrix auf meinem Haupt-Klasse ist, und ich bin mit Federverschluß 1.4.0.RELEASE

jede mögliche Hilfe bitte?

Antwort

0

Sind Sie sicher, dass dies der korrekte Name der Befehlseigenschaft ist? Sollte es nicht

@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "30000")

statt sein?

https://github.com/Netflix/Hystrix/wiki/Configuration#execution.isolation.thread.timeoutInMilliseconds

auch einige Schnipsel aus einem ihrer Tests, die hilfreich sein jetzt https://github.com/Netflix/Hystrix/blob/d838f4d1ba65ce55755ab1c73f74c980f04572bf/hystrix-contrib/hystrix-javanica/src/test/java/com/netflix/hystrix/contrib/javanica/test/common/configuration/command/BasicCommandPropertiesTest.java#L155

+0

vielen Dank, es funktioniert gut –