CXF (バージョン 3.1.3) クライアントを使用して PATCH メソッドで API を呼び出そうとしていました。
以下のスレッドで指定されている手順に従ってみましたが、解決できませんでした。AsyncHttpConduit の代わりに URLConnectionHttpConduit のみを取得する
http://cxf.apache.org/docs/asynchronous-client-http-transport.html
CXF HttpAsyncClient の use.async.http.conduit コンテキスト プロパティの使用を確認する
コード スニペットは次のとおりです。
Bus bus = BusFactory.getDefaultBus();
// insist on the async connector to use PATCH.
bus.setProperty(AsyncHTTPConduit.USE_ASYNC,
AsyncHTTPConduitFactory.UseAsyncPolicy.ALWAYS);
WebClient webClient = WebClient.create(request.getRestURL());
WebClient.getConfig(webClient).getBus().setProperty
(AsyncHTTPConduit.USE_ASYNC, AsyncHTTPConduitFactory.UseAsyncPolicy.ALWAYS);
WebClient.getConfig(webClient).getRequestContext()
.put(AsyncHTTPConduit.USE_ASYNC, AsyncHTTPConduitFactory.
UseAsyncPolicy.ALWAYS);
HTTPConduit conduit = (HTTPConduit)WebClient.getConfig(webClient)
.getConduit();
System.out.println(conduit.getClass().getName());
Response response = webClient.invoke(request.getMethod(), null);
System.out.println("service response = "+ response);
X-HTTP-Method-Override=PATCH ヘッダーを POST リクエストで使用してみましたが、
他のサイド サービスは RestEasy を使用して実装されており、X-HTTP-Method-Override ヘッダーを尊重していないように見えます。
問題を見つけるのを手伝ってくれませんか。