Я пытаюсь вызвать службу отдыха. И оставшийся клиент, и служба отдыха работают на моей машине в разных портах. Оба метода выполнения и обмена вызывают исключение нулевого указателя. Мой оставшийся клиент — это фильтр Netflix Zuul (который сам зарегистрирован в агенте Netflix Eureka Discovery). Я надеюсь, что это ничего не изменит, но в конце трассировки стека, кажется, упоминаются "ленточные" библиотеки. Так что я предполагаю, что ошибка может быть связана с этим.
У меня есть только @Autowired
объект RestTemplate в моем Rest Client. Я не использовал аннотацию @LoadBalanced
.
Когда я использую идентификатор «Eureka Service» вместо номера localhost:port, вызов выполняется успешно. В чем может быть корень?
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]