問題タブ [netflix-feign]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 2 つの異なる依存関係モジュールが実際には同じであることを gradle に伝え、バージョンが最も高いモジュールを選択させることはできますか?
Netflix Feign と Glassfish Jersey の実装に依存するプロジェクトがあります。
Feign は JAX-RS (JSR 311) の 1.1 仕様を使用し、glassfish jersey 実装は 2.0 仕様を使用します。2.0 は下位互換性がありますが、Gradle の依存関係の名前が変更されています。
したがって、私のプロジェクトには 2 つの依存関係があります。
- javax.ws.rs:jsr311-api:1.1.1
- javax.ws.rs:javax-ws-rs-api:2.0.1
どちらも同じパッケージに同じクラスを実装していますが、1.x に従っているものと 2.x に従っているものがあります。
私の Java コードでは、クラス名とパッケージしか指摘できません。
名前は異なりますが、これは実際には同じパッケージであり、そのようにしてクラスパスで実装クラスのセットを1つだけ取得することをGradleに伝えることはできますか?
現在、JVM とコンパイラが選択するクラスのバージョンはランダムです。コンパイルされない場合もあれば、コンパイルされても実行されない場合もあります (MethodNotFoundException)。
spring-cloud - Spring Cloud でカスタマイズされた ErrorDecoder と @ExceptionHandler を連携させる方法
「hr」と呼ばれるSpringクラウドサービスと、Feignをクライアントとして使用してhrサービスを呼び出すAPIゲートウェイサービスがあります。hr サービスで例外が発生した場合、型が の json メッセージが返されますResponseEntity<ServiceException>
。のServiceException
ようなものです:
feign.codec.ErrorDecoder
API ゲートウェイ サービスでは、次のようにカスタマイズしました。
ServiceException を取得しても問題なく動作し、次のようなエラー メッセージを取得できます。
エラー メッセージの形式を変更し、少なくともclassのerrorCode
フィールドを追加したいので、例外を処理するための注釈クラスを追加します。しかし残念ながら、それはうまくいきません。一部のフィルターからだけコントローラーによって例外がスローされないため、注釈が機能しない可能性があります。ServiceException
@ControllerAdvice
@ControllerAdvice
どなたか、ケースのアドバイスをいただけないでしょうか。
java - 偽の標的を偽装する
偽のターゲットを偽装する方法はありますか? 私のユースケースは次のとおりです。
- 同じ JVM で開始することも、別のサービスとして開始することもできるサービスがあります。
- サービスが同じ JVM で開始されている場合は、Guice を使用してバインドします。
- サービスがjvmの外部で開始された場合、fiegnを使用してサービスをバインドし、guiceに同じものを注入させます。
rest - 基本的な例で Feign Client を動作させることができない
Feign Client を動作させることができません。最初に POST で試してみました。タイプが正しくないというエンコーダー/デコーダーに関連するエラーが発生し続けました。次に、github で単純な GET API を呼び出す例を最終的に見つけ、試してみることにしました。それでも失敗する
Github とオンラインで、Feign Client Spring-Cloud、OpenFeign、Netflix.feign の複数のバージョンが異なるバージョンで表示されています。本番環境で使用する必要がある、最適で安定した Feign クライアントを説明できる人はいますか?
応用:
AutoWire の問題を解決できると考えて、注釈のすべての可能な順列を試しましたが、それでも失敗します
2016-07-20 18:15:42.406[0;39m [31mERROR[0;39m [35m32749[0;39m [2m---]0;39m [2m[メイン]][0;39m [36mo.s.boot .SpringApplication [0;39m [2m:[0;39m アプリケーションの起動に失敗しました
org.springframework.beans.factory.BeanCreationException: 「testWLCController」という名前の Bean の作成中にエラーが発生しました: 自動配線された依存関係の注入に失敗しました。ネストされた例外は org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.paa.controllers.GetFeignClient com.paa.controllers.TestWLCController.gfClient; です。ネストされた例外は org.springframework.beans.factory.BeanCreationException: 'com.aa..controllers.GetFeignClient' という名前の Bean の作成中にエラーが発生しました: FactoryBean がオブジェクトの作成時に例外をスローしました。ネストされた例外は、org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE] で java.lang.NullPointerException です。組織 run(SpringApplication.java:1180) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] at com.paa.ServiceApplication.main(ServiceApplication.java:44) [bin/:na] 原因: org.springframework.beans.factory.BeanCreationException: フィールドを自動配線できませんでした: プライベート com.paa.controllers.GetFeignClient com.paa.controllers.TestWLCController.gfClient; ネストされた例外は org.springframework.beans.factory.BeanCreationException: 'com.paa.controllers.GetFeignClient' という名前の Bean の作成中にエラーが発生しました: FactoryBean がオブジェクトの作成時に例外をスローしました。ネストされた例外は、org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573) で java.lang.NullPointerException です ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE ] org.springframework.beans で。
spring-security-oauth2 - 特定の FeignClient の RequestIntercepor
AccessToken を OAuth2ClientContext から RequestTemplate のヘッダーに自動的にコピーする RequestInterceptor があるため、内部サービスは、シナリオを開始したモバイル デバイスから取得したものと同じ AccessToken を使用して相互にシームレスに呼び出します。これが、サービス メソッドの承認を管理する方法です。これはインターセプター コードです。
これは @Beans 構成です。
問題は、さまざまな FeignClient があり、その一部が SMS テキストに使用するサービスなどのサードパーティ サービス用であり、そこに AccessToken を送信したくないことです。
RequestInterceptor 内でどの FeignClient から来たのかを判断するにはどうすればよいですか?
spring-cloud - クエリ値に `{aa%` が含まれているため、feign が http ステータス コード 400 を返しました
spring-cloud で feign を使用していますが、問題があります。
これは私の偽のクライアント定義です。
この呼び出しには、ステータス コード 400 が返されます。
次に、コードを確認すると、RequestTemplate クラスに次のコードが見つかりました。
encodeIfNotVariable
query(String name, String... values) で呼び出されるメソッド。
これは{
、最初の に と を含む値の場合、値をエンコードできないことを意味します。
どうすればこれを修正できますか?
java - Netflix Feign コンテンツ タイプ 'アプリケーション/json;charset=UTF-8' はサポートされていません
次のようなクライアントを使用して、Netflix Feignを使用してJava httpクライアントを作成しています。
奇妙なエラーが表示されます
メッセージには「コンテンツ タイプ 'アプリケーション/json;charset=UTF-8' はサポートされていません」というメッセージが表示されますMediaType.APPLICATION_JSON_UTF8_VALUE
が、Spring の値を使用しています。
アプリケーション/json;文字セット=UTF-8
誰が何が起こっているのか知っていますか?
java - netflix を偽装するヘッダーを取得する
マイクロサービスの通信にnetflix feignを使用しています。
したがって、私のマイクロサービス A には、マイクロサービス B によって消費される操作「OperationA」があり、X-Total という名前のヘッダーで 1 つのパラメーターを B に渡します。
私のクライアントインターフェースは次のとおりです:
次に、dto のリストを取得しましたが、ヘッダーの X-TOTAL パラメータを取得する方法がわかりません。
ヘッダーのパラメーターを取得するにはどうすればよいですか?
netflix-feign - Feign はスレッドセーフですか?
Feign スレッドセーフのインスタンスはありますか? これをサポートするドキュメントは見つかりませんでした。そうでないと思う人はいますか?
これは、Feign の github リポジトリに投稿された標準的な例です...
これを次のように変更する必要があります...スレッドセーフですか...?
上記の例では... スプリング ベースのコンポーネントを使用してシングルトンを強調表示しました。前もって感謝します...
spring-cloud-netflix - spring-cloud - リボンだけの Hystrix ストリーム
spring-boot-starter-actuator
リボン/Feign クライアントが使用されている Web アプリケーションでは、hystrix ストリーム/エンドポイントが有効になっていません。
HystrixCircuitBreakerConfiguration.HystrixWebConfiguration
条件が成立しても発動しません。
Feign/Ribbon の hystrix ストリームを有効にする方法は?
環境: Spring Boot 1.3.5.RELEASE、Spring Cloud Brixton.SR4