Describe the bug
- when AoT compiled, runtime loadBalancerClientFactory.getInstances(serviceId, LoadBalancerLifecycle.class) throw a IllegalArgumentException(result)
- keyword source code
Set<LoadBalancerLifecycle> supportedLifecycleProcessors = LoadBalancerLifecycleValidator
.getSupportedLifecycleProcessors(
loadBalancerClientFactory.getInstances(serviceId, LoadBalancerLifecycle.class),
RetryableRequestContext.class, ResponseData.class, ServiceInstance.class)
Sample stack is
java.lang.IllegalArgumentException: Object of class [org.springframework.context.support.GenericApplicationContext] must be an instance of interface org.springframework.context.annotation.AnnotationConfigRegistry
at org.springframework.util.Assert.instanceCheckFailed(Assert.java:713) ~[na:na]
at org.springframework.util.Assert.isInstanceOf(Assert.java:613) ~[na:na]
at org.springframework.util.Assert.isInstanceOf(Assert.java:644) ~[na:na]
at org.springframework.cloud.context.named.NamedContextFactory.registerBeans(NamedContextFactory.java:143) ~[example-service-account:4.0.0-RC3]
at org.springframework.cloud.context.named.NamedContextFactory.createContext(NamedContextFactory.java:137) ~[example-service-account:4.0.0-RC3]
at org.springframework.cloud.context.named.NamedContextFactory.getContext(NamedContextFactory.java:122) ~[example-service-account:4.0.0-RC3]
at org.springframework.cloud.context.named.NamedContextFactory.getInstances(NamedContextFactory.java:236) ~[example-service-account:4.0.0-RC3]
at org.springframework.cloud.openfeign.loadbalancer.RetryableFeignBlockingLoadBalancerClient.lambda$execute$2(RetryableFeignBlockingLoadBalancerClient.java:140) ~[na:na]
at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:329) ~[na:na]
at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:225) ~[na:na]
at org.springframework.cloud.openfeign.loadbalancer.RetryableFeignBlockingLoadBalancerClient.execute(RetryableFeignBlockingLoadBalancerClient.java:135) ~[na:na]
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:102) ~[na:na]
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:72) ~[na:na]
at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:98) ~[na:na]
at jdk.proxy4/jdk.proxy4.$Proxy47.passport(Unknown Source) ~[na:na]
Comment From: ccwxl
- https://github.com/spring-cloud/spring-cloud-commons/pull/1176/files
- need to explicitly specify the value of LoadBalancerClient?
Comment From: OlgaMaciaszek
Hello @siaron, yes you need to indicate the service ids for AOT and native. Is it still failing if you do that? If yes, could you please provide a minimal, complete, verifiable example that reproduces the issue?
Comment From: ccwxl
yes. it work
Comment From: OlgaMaciaszek
Hello @peterhonneparker please note that this repository is maintained in English. Any comments written in other languages won't be read or addressed.