When using an @HttpServiceClient
annotated interface, it doesn't appear that @Retryable
can also be used:
@HttpServiceClient("example")
public interface ExampleClient {
@GetExchange(url = "/{id}/for", version = "2.0")
@Retryable
List<String> rest(@PathVariable int id);
}
Calling the method gives the exception:
java.lang.NullPointerException: Cannot invoke "Object.getClass()" because "obj" is null
at java.base/java.lang.reflect.Method.invoke(Method.java:557) ~[na:na]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359) ~[spring-aop-7.0.0-M8.jar:7.0.0-M8]
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) ~[spring-aop-7.0.0-M8.jar:7.0.0-M8]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:158) ~[spring-aop-7.0.0-M8.jar:7.0.0-M8]
at org.springframework.resilience.retry.AbstractRetryInterceptor$1.execute(AbstractRetryInterceptor.java:106) ~[spring-context-7.0.0-M8.jar:7.0.0-M8]
at org.springframework.core.retry.RetryTemplate.execute(RetryTemplate.java:156) ~[spring-core-7.0.0-M8.jar:7.0.0-M8]
at org.springframework.resilience.retry.AbstractRetryInterceptor.invoke(AbstractRetryInterceptor.java:103) ~[spring-context-7.0.0-M8.jar:7.0.0-M8]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-7.0.0-M8.jar:7.0.0-M8]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:222) ~[spring-aop-7.0.0-M8.jar:7.0.0-M8]
at jdk.proxy2/jdk.proxy2.$Proxy57.owners(Unknown Source) ~[na:na]
at com.example.isdb_pic.ResilientStuffieService.owners(ResilientStuffieService.java:40) ~[classes/:na]
at com.example.isdb_pic.IsdbPicApplication.lambda$0(IsdbPicApplication.java:15) ~[classes/:na]
at org.springframework.boot.SpringApplication.lambda$callRunner$0(SpringApplication.java:780) ~[spring-boot-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
at org.springframework.util.function.ThrowingConsumer$1.acceptWithException(ThrowingConsumer.java:82) ~[spring-core-7.0.0-M8.jar:7.0.0-M8]
at org.springframework.util.function.ThrowingConsumer.accept(ThrowingConsumer.java:60) ~[spring-core-7.0.0-M8.jar:7.0.0-M8]
at org.springframework.util.function.ThrowingConsumer$1.accept(ThrowingConsumer.java:86) ~[spring-core-7.0.0-M8.jar:7.0.0-M8]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:792) ~[spring-boot-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:780) ~[spring-boot-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
at org.springframework.boot.SpringApplication.lambda$callRunners$0(SpringApplication.java:768) ~[spring-boot-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186) ~[na:na]
at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:571) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560) ~[na:na]
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153) ~[na:na]
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:636) ~[na:na]
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:768) ~[spring-boot-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1357) ~[spring-boot-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1346) ~[spring-boot-4.0.0-SNAPSHOT.jar:4.0.0-SNAPSHOT]
at com.example.isdb_pic.IsdbPicApplication.main(IsdbPicApplication.java:19) ~[classes/:na]