0

HTTP 接続の永続性を無効にするために、http コンポーネントを使用して Apache Camel ルートの 1 つで HTTP プロトコル 1.0 を適用したいと考えています。

Camel のhttp コンポーネントのドキュメントに従って、次の URI を使用しようとしました。

http://localhost:8888/foo?httpClient.protocolVersion=HTTP/1.0

ただし、キャメル コンテキストの初期化は、次のメッセージを含む ResolveEndpointFailedException で失敗します。

Unknown parameters=[{protocolVersion=HTTP/1.0}]

HttpClientParam documentationにより、プロトコルバージョンパラメーターが利用可能であると想定しました。興味深いことに、Apache Camel ドキュメントの soTimeout の例は問題なく動作します。

http コンポーネントと http4 コンポーネントの両方を試しました。Apache Camel 2.10.4 を使用しています。http コンポーネントには、ユーザー エージェント Jakarta Commons-HttpClient/3.1 があります。

http コンポーネントの httpClientConfigurer および/または clientConnectionManager パラメーターを使用することもできることはわかっていますが、カスタム コードを必要としないソリューションを使用したいと考えています。

助けてくれてありがとう!

4

1 に答える 1

0

次の解決策を思いつきました。

http-component URL でカスタムを設定しましたhttpClientConfigurer:

http://localhost:8080/foo?httpClientConfigurer=myHttpClientConfigurer

wheremyHttpClientConfigurerは、次のような実装を持つ Bean です。

public class Http10ClientConfigurer implements HttpClientConfigurer {
  @Override
  public void configureHttpClient(HttpClient httpClient) {
      if (httpClient.getParams() != null) {
          httpClient.getParams().setVersion(new HttpVersion(1, 0));
      } else {
          // Could not set HTTP 1.0 version on httpClient
      }
  }
}
于 2013-10-14T12:42:42.060 に答える