問題タブ [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.
spring-cloud - Feign RequestInterceptor を使用して到達できないセキュリティ コンテキスト
目標は、RequestInterceptor を使用してセキュリティ コンテキストからいくつかのデータをアタッチすることですが、SecurityContextHolder.getContext().getAuthentication()
null ではないにもかかわらず、呼び出しが常に null を返すという問題があります (100% と確信しています)。
私が理解しているように、それはインターセプターが作成され、他のスレッドで実行されているためです。
この問題を解決して、セキュリティ コンテキストから実際のデータを取得するにはどうすればよいでしょうか?
私のサービス:
私の FeignConfig クラス:
spring-boot - spring-cloud なしで eureka+feign-client を使用するには?
Spring Cloud を使用した新しいプロジェクトがあります (インターフェイスを表示するには eureka+feign を使用します)。また、Spring Boot と Spring Cloud を使用せずに springMVC のみを使用する古いプロジェクトもあります。これらのプロジェクトは、Spring Boot や Spring Cloud を使用したくありません...問題は、古いプロジェクトで eureka と feign の新しいインターフェイスを使用する方法です。次のように依存関係を pom.xml にインポートすると:
プロジェクトはエラーで開始されません:
わかりません...助けてください...
java - spring-cloud-feign Client と Date タイプの @RequestParam
今回は、Declarative REST Client, Feign in some Spring Boot App を使用しました。
私が達成したかったのは、次のような REST API の 1 つを呼び出すことです。
ご覧のとおり、API は次のようなフォーマットの from および to Date パラメータを使用した呼び出しを受け入れます。(yyyy-MM-dd)
その API を呼び出すために、次の部分を用意しました@FeignClient
。
一般的には、ほとんどコピペです。そして今、ブートアプリのどこかで、それを使用しています:
そして、私が返すのは、
ネストされた例外は org.springframework.core.convert.ConversionFailedException: タイプ [java.lang.String] からタイプ [@org.springframework.web.bind.annotation.RequestParam @org.springframework.format.annotation.DateTimeFormat への変換に失敗しました。 java.util.Date] for value 'Sun May 03 00:00:00 CEST 2015';
ネストされた例外は java.lang.IllegalArgumentException: Unable to parse 'Sun May 03 00:00:00 CEST 2015' です
それで、問題は、APIに送信する前に「日付のみ」の形式に解析されないリクエストの何が間違っているのですか? それとも、純粋な Feign lib の問題でしょうか?
java - @RequestLine 使用時のメディアタイプの設定
Feign Client インターフェイスで @RequestLine アノテーションを使用しています。Request Method と Path のみを受け取ります。生成および消費するメディア タイプを設定する方法はありますか?
これは私が持っているものです。これが生成および消費するメディアタイプをこれに追加する方法について何か提案はありますか?
java - @FeignClient は、共通の完全に注釈が付けられたインターフェイスを拡張し、@RestController を実装できますか?
Feign クライアントに Spring Boot コントローラーを使用してもらい、それらの間のコントラクトを可能な限り共通のインターフェイスで指定するようにします。
メソッドとのインターフェースは次のようになります。
Feign クライアントは次のようになります。
および Spring ブート コントローラー:
@RequestMapping を 2 か所指定する必要がないのは良いことですが、残念ながら @RequestBody を 2 回指定する必要があるようです。@RequestBody がコントローラーまたは共有インターフェースから省略されている場合、Rule オブジェクトはインスタンス化されますが、すべてのメンバーが null に設定されます。
これを回避する方法はありますか?おそらく、これは新しいバージョンで対処されていますか? 私の依存関係は次のとおりです。
この手法には少なくとも偽コア 8.6 が必要であることがわかりました。
https://jmnarloch.wordpress.com/2015/08/19/spring-cloud-designing-feign-client/
助けてくれてありがとう。
java - Feign を使用して POST データをリクエスト パラメータとして含める
次のような API があるとします。PersonDto
は単純な pojo です。
この API を呼び出すと、feign はリクエスト本文に pojo のすべてのプロパティを含めます (これは標準であり、これまでのところ適切です) が、反対側に POST データがリクエスト パラメータとして含まれることを期待するレガシー アプリがあります。私は次のようなことができることを知っています:
しかし、パラメータが多すぎると本当に醜くなります。
インターセプターを使用してプログラムでパラメーターを追加しようとしRequestTemplate.query
ましたが、それらはすべてリクエスト本文にも含まれます。
偽物でそのようなことをする方法はありますか?
spring - Feign Client + Eureka POST リクエスト本文
Feign と Eureka を使用して、サーバー A からサーバー B に投稿要求を転送しようとしています。両方のサーバーが Eureka によって正常に検出されました。
これは機能します:
ただし、POST リクエストの内容を読み取るために 2 番目の引数を @RequestBody に変更すると、例外が発生します。
spring - 偽のクライアントと hystrix で Oauth2 トークンを使用しようとしています
「ServiceA」から「ServiceB」を呼び出そうとしています。どちらのサービスもリソースサーバーです。「Feign Client and OAuth2 toke」を介してこのサービス間呼び出しを行おうとしています。これは、Configuration クラスの以下の Bean 実装で正常に動作しています。 :
フォールバックで Feign クライアントを使用しようとしているとき、つまり OAuth トークンなしで Hystrix を使用しようとしているとき (つまり、どのサービスもリソース サーバーではないとき) も正常に動作しています。
しかし、これらのうちの 3 つ (つまり、Feignclient、Hystrix、および OAuth2) をすべて一緒に使用しようとしても、うまくいきません。すべてのサービスが稼働しているにもかかわらず、毎回フォールバック方式になります。
以下は私のコードです:
App.java
Callervice.java
HystrixWrappedClient.java
GitHubClient.java
pom.xml
提案してください。Feignclient、OAuth2、および Hystrix をすべて一緒に使用しようとすると、常にフォールバック メソッドになります。