、私はRESTサービスに接続するために春FeignClientsを使用しています私の小さな4クラスgithub project春の雲のネットフリックスとHystrixObservable - コードの場合> JsonMappingException
を参照してください。これは装うクライアントはその基本的な(非非同期)の形で次のようになります。
@FeignClient(value="localhost:8080/products", decode404 = true)
public interface ProductClient {
@RequestMapping(value="/{id}")
Product getById(@PathVariable("id") String id);
}
は今、私が観測を使用して、非同期的にそれをやってみたかったです。これに関する情報は、Springのドキュメントではひどく不足しています。small paragraphのみがあり、HystrixCommandを使用するように指示しています。それだけです、説明はなく、sampeコードはありません。
別のブログ記事では、代わりにHystrixObservableを使用するように指示されました。だから、私は試したこと: com.fasterxml.jackson.databind.JsonMappingException:com.netflix.hystrixのインスタンスを作成することはできません
@FeignClient(value="localhost:8080/products", decode404 = true)
public interface ProductClient {
@RequestMapping(value="/{id}")
HystrixObservable<Product> getById(@PathVariable("id") String id);
}
いずれかの方法で、HystrixCommandまたはHystrixObservableと、それはエラーが私を投げます.HystrixObservable
スプリングブートは自動的にデコーダをFeignClientに接続してジャクソンを使用してレスポンスをデシリアライズするので、なぜこのエラーが発生するのか理解しています。また、レスポンスを非直列化する型は戻り値から導出されます。
私はカストムデコーダーを構成したり、手動でFeignクライアントを構築しようと試みることができますが、そのような種類のものはSpring Bootの全目的を凌駕します。(ここでは少しの構成ですが)
それで私の質問です:どのようにこれは動作するはずですか?
[ドキュメント](https://github.com/OpenFeign/feign/tree/master/hystrix)に示すように、あなたは(HystrixFeign' '経由で)違ったクライアントを構築する必要があります。 –
はい、手動でFeignクライアントを構築することは可能です。しかし、私の質問は、Spring + Feignです。では、Springが適切なFeignクライアントを生成する方法を教えてください。 Springのドキュメントにはできることが示唆されていますが、いくつかの重要な詳細は除外されています。また、この[ブログ投稿](https://www.voxxed.com/blog/2016/03/netflix-stack-using-spring-boot-part-3-feign/#feignclientwithhystrixobservablewrapper)は、私がやっていることを正確に示しています。 –