2016-04-21 2 views
0

tomcatの下にWAR-デプロイされたSpringBootユーレカクライアントアプリケーションと通信するnetflix FeignClientでかなり奇妙なエラーが発生しています。FeignClient WARデプロイされたSpringBootアプリケーションで無効なHTTPエラーが発生しました

マイセットアップ:春ブーツアプリとして実行している

  1. ユーレカサーバー。 http://localhost:9002

@ GradleのbootRunから春ブーツアプリとして実行している

  • @EnableDiscoveryClientとSpringBootのApp DEMO1はWARファイルとしてTomcatの下に展開され、http://localhost:8080/DemoApp1-1.0.0/greeting
  • SpringBootのApp DEMO2(ユーレカクライアント)上で実行されています、どちらのアプリはユーレカサーバに登録し、アクセス可能 DEMO2がDEMO1上のRESTエンドポイントを指すfeignclientを持っているされています。

    私はhttp://localhost:8080/DemoApp1-1.0.0/greetingでDEMO1レストエンドポイントにアクセスすることができますが、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] 
    ... 
    

    誰もがこの上のアイデアを持っていますか?

  • +0

    で解決されていますが、これはHTTP応答メッセージを設定していないTomcatの9によるものですが判明します。 Tomcat 8は期待通りに動作します。したがって、最終行のTomcat9とnetflix-feignは互換性がありません。 feign.Clientクラスは、httpステータスコードに加えて、有効なhttp応答メッセージを期待しています。 netflix feignのバグが発生します。 – 343guiltyspark

    答えて

    0

    問題が装う8.17.0

    関連する問題