1

我观察到 netflix FeignClient 与部署在 tomcat 下的 SpringBoot eureka 客户端应用程序 WAR 通信的一个相当奇怪的失败。

我的设置:

  1. Eureka Server 作为 Spring Boot 应用程序运行。
  2. 带有@EnableDiscoveryClient 的SpringBoot App DEMO1 作为WAR 文件部署在tomcat 下并运行在http://localhost:8080/DemoApp1-1.0.0/greeting
  3. SpringBoot App DEMO2(也是一个 eureka 客户端),作为 spring boot 应用程序从 gradle bootRun @ 运行http://localhost:9002

这两个应用程序都在 Eureka 服务器上注册并且可以访问 DEMO2 有一个 feignclient 指向 DEMO1 上的 REST 端点。

虽然我可以访问 DEMO1 休息端点http://localhost:8080/DemoApp1-1.0.0/greeting,但来自 DEMO2 应用程序的 feignclient 失败,并出现以下异常:

java.io.IOException: Invalid HTTP executing GET http://localhost:8080/DemoApp1-1.0.0/greeting
    at feign.Client$Default.convertResponse(Client.java:157) ~[feign-core-8.16.0.jar:8.16.0]
    at feign.Client$Default.execute(Client.java:74) ~[feign-core-8.16.0.jar:8.16.0]
    at org.springframework.cloud.netflix.feign.ribbon.FeignLoadBalancer.execute(FeignLoadBalancer.java:77) ~[spring-cloud-netflix-core-1.1.0.RC2.jar:1.1.0.RC2]
    at org.springframework.cloud.netflix.feign.ribbon.FeignLoadBalancer.execute(FeignLoadBalancer.java:45) ~[spring-cloud-netflix-core-1.1.0.RC2.jar:1.1.0.RC2]
    at com.netflix.client.AbstractLoadBalancerAwareClient$1.call(AbstractLoadBalancerAwareClient.java:109) ~[ribbon-loadbalancer-2.1.5.jar:2.1.5]
    at com.netflix.loadbalancer.reactive.LoadBalancerCommand$3$1.call(LoadBalancerCommand.java:303) ~[ribbon-loadbalancer-2.1.5.jar:2.1.5]
    at com.netflix.loadbalancer.reactive.LoadBalancerCommand$3$1.call(LoadBalancerCommand.java:287) ~[ribbon-loadbalancer-2.1.5.jar:2.1.5]
    at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:55) ~[rxjava-1.0.14.jar:1.0.14]
    at rx.internal.util.ScalarSynchronousObservable$1.call(ScalarSynchronousObservable.java:46) ~[rxjava-1.0.14.jar:1.0.14]
    at rx.internal.util.ScalarSynchronousObservable$1.call(ScalarSynchronousObservable.java:35) ~[rxjava-1.0.14.jar:1.0.14]
    at rx.Observable$2.call(Observable.java:162) ~[rxjava-1.0.14.jar:1.0.14]
    at rx.Observable$2.call(Observable.java:154) ~[rxjava-1.0.14.jar:1.0.14]
    at rx.Observable$2.call(Observable.java:162) ~[rxjava-1.0.14.jar:1.0.14]
    at rx.Observable$2.call(Observable.java:154) ~[rxjava-1.0.14.jar:1.0.14]
...

有人对此有想法吗?

4

1 回答 1

0

该问题已通过 feign 8.17.0 解决

于 2016-07-30T20:55:12.393 回答