問題タブ [spring-jersey]
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.
cookies - Jersey Client で CookieSpec を変更するには?
このプロジェクトでは、Jersey Client を次のように使用しました。
clientConfig.connectorProvider(新しい ApacheConnectorProvider());
clientConfig.register(MultiPartFeature.class);
client = ClientBuilder.newClient(clientConfig);
実際には httpClient を使用してジョブを実行します。しかし今、この質問で CookieSpec の問題に遭遇しました: Fixing HttpClient warning “Invalid expires attribute” using fluent API . CookieSpec を変更する必要がありますが、構成を変更する場所が見つかりません。
spring-boot - HttpServletRequest SpringBoot 2.2、Jersey 2.29 からフォーム データを取得できなくなりました
SpringBoot アプリケーションがあり、Jersey を使用して受信 HTTP リクエストを監査しています。
Jersey ContainerRequestFilterを実装して着信HttpServletRequestを取得し 、HttpServletRequest のgetParameterMap()メソッドを使用してクエリとフォーム データの両方を抽出し、監査に配置しました。
これは、getParameterMap() の javadoc と一致します。
「リクエスト パラメータは、リクエストとともに送信される追加情報です。HTTP サーブレットの場合、パラメータはクエリ文字列または投稿されたフォーム データに含まれています。」
フィルタに関するドキュメントは次のとおりです。
SpringBoot を更新すると、getParameterMap()がフォーム データを返さなくなりましたが、引き続きクエリ データを返すことがわかりました。
SpringBoot 2.1 が、コードをサポートする最後のバージョンであることがわかりました。SpringBoot 2.2 では、Jersey のバージョンが 2.29 に更新されましたが、リリース ノートを確認すると、これに関連するものは何も見つかりません。
何が変わったのですか?SpringBoot 2.2 / Jersey 2.29 をサポートするには、何を変更する必要がありますか?
以下は、コードの単純化されたバージョンです。
JerseyRequestFilter - 私たちのフィルター
RequestInterceptorModel - マップにはフォーム データが取り込まれておらず、クエリ データのみが取り込まれています
JerseyConfig - 私たちの設定
完全な例
サンプル プロジェクトで再作成する手順は次のとおりです。
- ここで github からソースをダウンロードします。
- pom.xml ファイルがあるプロジェクト ディレクトリに移動します。
- 次を使用してプロジェクトを実行します。
- 新しいターミナルで次の curl コマンドを実行して、Web サービスをテストします。
- ログにフォームパラメータが表示されます
- 実行中のプロジェクトを停止、ctrl-C
- pom の親バージョンを SpringBoot の新しいバージョンに更新する
に
- プロジェクトを再度実行します。
- curl 呼び出しを再度呼び出します。
- 今回は、ログにフォーム パラメータがありません