残りのサービスへの呼び出しを呼び出そうとしています。残りのクライアントと残りのサービスの両方が、マシンの異なるポートで実行されています。execute メソッドと exchange メソッドの両方がヌル ポインター例外をスローしています。私の残りのクライアントは、Netflix Zuul Filter (Netflix Eureka Discovery エージェントに登録されています) です。違いがないことを願っていますが、スタック トレースの最後で「リボン」ライブラリについて言及しているようです。したがって、エラーはそれに関連している可能性があると思います。
@Autowired
Rest Client には RestTemplate オブジェクトしかありません。私は@LoadBalanced
注釈を使用していません。
localhost:port 番号の代わりに「Eureka Service」ID を使用すると、呼び出しが正常に実行されます。根本的なケースは何ですか?
restTemplate.exchange("http://localhost:8085/helloWorld, HttpMethod.GET, entity, HttpServletResponse.class);
例外スタック トラック:
Caused by: java.lang.NullPointerException: null
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210) ~[guava-18.0.jar:na]
at com.google.common.cache.LocalCache.get(LocalCache.java:3936) ~[guava-18.0.jar:na]
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941) ~[guava-18.0.jar:na]
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824) ~[guava-18.0.jar:na]
at com.netflix.loadbalancer.LoadBalancerStats.getServerStats(LoadBalancerStats.java:167) ~[ribbon-loadbalancer-2.0-RC13.jar:na]
at com.netflix.loadbalancer.LoadBalancerStats.getSingleServerStat(LoadBalancerStats.java:354) ~[ribbon-loadbalancer-2.0-RC13.jar:na]
at com.netflix.loadbalancer.LoadBalancerContext.getServerStats(LoadBalancerContext.java:621) ~[ribbon-loadbalancer-2.0-RC13.jar:na]
at org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.execute(RibbonLoadBalancerClient.java:71) ~[spring-cloud-netflix-core-1.0.0.RELEASE.jar:1.0.0.RELEASE]
at org.springframework.cloud.client.loadbalancer.LoadBalancerInterceptor.intercept(LoadBalancerInterceptor.java:46) ~[spring-cloud-commons-1.0.2.RELEASE.jar:1.0.2.RELEASE]
at org.springframework.http.client.InterceptingClientHttpRequest$RequestExecution.execute(InterceptingClientHttpRequest.java:84) ~[spring-web-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.http.client.InterceptingClientHttpRequest.executeInternal(InterceptingClientHttpRequest.java:69) ~[spring-web-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) ~[spring-web-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53) ~[spring-web-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:568) ~[spring-web-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:529) ~[spring-web-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:447) ~[spring-web-4.1.5.RELEASE.jar:4.1.5.RELEASE]