第71章 HTTP4


HTTP4 コンポーネント

Camel 2.3 の時点で利用可能
http4: コンポーネントは、(HTTP を使用して外部サーバーを呼び出すクライアントとして)外部 HTTP リソースを呼び出す HTTP ベースの エンドポイント を提供します。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-http4</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap
camel-http4 vs camel-http
camel-http4 は Apache HttpClient 4.x を使用し、camel-http は Apache HttpClient 3.x を使用します。

Camel on EAP デプロイメント

このコンポーネントは、Red Hat JBoss Enterprise Application Platform (JBoss EAP) コンテナー上で簡素化されたデプロイメントモデルを提供する Camel on EAP (Wildfly Camel) フレームワークによってサポートされます。このモデルの詳細は、Deploying into a Web Server の Apache Camel on JBoss EAP の章を参照してください

URI 形式

http4:hostname[:port][/resourceUri][?options]
Copy to Clipboard Toggle word wrap
デフォルトでは、HTTP にポート 80 を使用し、HTTPS には 443 を使用します。
URI にクエリーオプションは ?option=value&option=value&.. の形式で追加できます。
camel-http4 vs camel-jetty
生成できるのは、HTTP4 コンポーネントによって生成されたエンドポイントのみです。そのため、Camel ルートへの入力としては使用しないでください。HTTP エンドポイントを Camel ルートへの入力として、HTTP サーバー経由でバインド/公開するには、Jetty コンポーネント を使用してください。

HttpComponent オプション

Expand
名前 デフォルト値 説明
maxTotalConnections 200 接続の最大数。
connectionsPerRoute 20 ルートごとの最大接続数。
cookieStore null Camel 2.11.2/2.12.0: カスタムの org.apache.http.client.CookieStore を使用するには、以下を行います。デフォルトでは、org.apache.http.impl.client.BasicCookieStore が使用されます。これはインメモリーのみの Cookie ストアです。bridgeEndpoint=true の場合、クッキーストアは単にブリッジ(プロキシーとして機能するなど)であるため、Cookie ストアを noop クッキーストアとして強制的に保存しないでください。
httpClientConfigurer null レジストリーの org.apache.camel.component.http.HttpClientConfigurer への参照。
clientConnectionManager null カスタムの org.apache.http.conn.ClientConnectionManager を使用するには、以下を行います。
httpBinding null カスタムの org.apache.camel.component.http.HttpBinding を使用するには、以下を行います。
httpContext null Camel 2.9.2: リクエストの実行時にカスタムの org.apache.http.protocol.HttpContext を使用します。
sslContextParameters null Camel 2.8: カスタムの org.apache.camel.util.jsse.SSLContextParameters を使用するには、以下を行います。Security Guide の Configuring Transport Security for Camel Components の章を参照してください「JSSE 設定ユーティリティーの使用」
x509HostnameVerifier BrowserCompatHostnameVerifier Camel 2.7: org.apache.http.conn.ssl.X509HostnameVerifier インスタンスを別の org.apache.http.conn.ssl.StrictHostnameVerifier または org.apache.http.conn.ssl.AllowAllHostnameVerifier 等のレジストリーで参照できます。
connectionTimeToLive -1 Camel 2.11.0: 接続の有効期間。時間単位はミリ秒で、デフォルト値は常に存続します。
allowJavaSerializedObject false
Camel 2.16.1/2.15.5: リクエストが context-type=application/x-java-serialized-object を使用している場合に Java のシリアル化を許可するかどうか。このオプションはデフォルトでオフになっています。警告: このオプションを有効にすると、Java はリクエストから Java に受信データをデシリアライズし、セキュリティーリスクとなる可能性があることに注意してください。

HTTPEndpoint オプション

Expand
名前 デフォルト値 説明
throwExceptionOnFailure true リモートサーバーからの応答が失敗した場合に HttpOperationFailedException を出力することを無効にするオプション。これにより、HTTP ステータスコードに関係なくすべての応答を取得できます。
bridgeEndpoint false true の場合、HttpProducer は Exchange.HTTP_URI ヘッダーを無視し、リクエストにエンドポイントの URI を使用します。また、throwExcpetionOnFailure を false に設定して、HttpProducer がすべての障害応答を返信するようにすることもできます。また、true HttpProducer に設定すると、content-encoding が gzip の場合、CamelServlet は gzip 処理をスキップします。
clearExpiredCookies true Camel 2.11.2/2.12.0: HTTP リクエストを送信する前に期限切れのクッキーを消去するかどうか。これにより、クッキーストアは、有効期限が切れたときに削除される新しいクッキーを追加して拡張し続けません。
cookieStore null Camel 2.11.2/2.12.0: カスタムの org.apache.http.client.CookieStore を使用するには、以下を行います。デフォルトでは、org.apache.http.impl.client.BasicCookieStore が使用されます。これはインメモリーのみの Cookie ストアです。bridgeEndpoint=true の場合、クッキーストアは単にブリッジ(プロキシーとして機能するなど)であるため、Cookie ストアを noop クッキーストアとして強制的に保存しないでください。
disableStreamCache false DefaultHttpBinding は、要求入力ストリームをストリームキャッシュにコピーし、このオプションが複数の読み取りをサポートする場合はメッセージボディーに配置します。それ以外の場合は、DefaultHttpBinding は要求入力ストリームをメッセージボディーに直接設定します。Camel 2.17: このオプションは、デフォルトでストリームキャッシングの代わりに応答ストリームを直接使用できるようにするため、プロデューサーによってもサポートされるようになりました。
headerFilterStrategy null Camel 2.10.4: レジストリーの org.apache.camel.spi.HeaderFilterStrategy のインスタンスへの参照。t は、新しい create HttpEndpoint にカスタム headerFilterStrategy を適用するために使用されます。
httpBindingRef null 非推奨および は Camel 3.0: Registry の org.apache.camel.component.http.HttpBinding への参照で削除され ます。代わりに httpBinding オプションを使用してください。
httpBinding null カスタムの org.apache.camel.component.http.HttpBinding を使用するには、以下を行います。
httpClientConfigurer null レジストリーの org.apache.camel.component.http.HttpClientConfigurer への参照。
httpContext null Camel 2.9.2: リクエストの実行時にカスタムの org.apache.http.protocol.HttpContext を使用します。
httpClient.XXX null
BasicHttpParams でオプションの設定たとえば、httpClient.soTimeout=5000SO_TIMEOUT を 5 秒に設定します。以下のパラメーター bean のセッターメソッドを確認します。AuthParamBeanClientParamBeanConnConnectionParamBeanConnRouteParamBeanCookieSpecParamBean、HttpConnectionParamBean、HttpConnectionParamBean、および HttpProtocolParamBean
Camel 2.13.0: httpClientHttpClientBuilder および RequestConfig.Builder の設定に変更されているため 、完全な参考として API ドキュメントを確認してください。たとえば、httpClient.socketTimeout=5000 を使用して、ソケットのタイムアウトを 5 秒に設定します。
clientConnectionManager null カスタムの org.apache.http.conn.ClientConnectionManager を使用するには、以下を行います。
transferException false 有効化され、エクスチェンジ がコンシューマー側で処理に失敗した場合、発生した 例外application/x-java-serialized-object コンテンツタイプとして応答でシリアライズされた場合は( Jetty または SERVLET Camel コンポーネントを使用)。プロデューサー側では、例外がデシリアライズされ、HttpOperationFailedException ではなくそのまま出力されます。原因となった例外はシリアライズする必要があります。
sslContextParameters null Camel 2.11.1: レジストリーの org.apache.camel.util.jsse.SSLContextParameters への参照。重要: HttpComponent ごとに、org.apache.camel.util.jsse.SSLContextParameters の 1 つのインスタンスのみがサポートされます。2 つ以上の異なるインスタンスを使用する必要がある場合は、インスタンスごとに新しい HttpComponent を定義する必要があります。詳細につていは以下をご覧くださいSecurity Guide および 「JSSE 設定ユーティリティーの使用」 の Configuring Transport Security for Camel Components も参照して ください。
x509HostnameVerifier BrowserCompatHostnameVerifier Camel 2.7: org.apache.http.conn.ssl.X509HostnameVerifier インスタンスを別の org.apache.http.conn.ssl.StrictHostnameVerifier または org.apache.http.conn.ssl.AllowAllHostnameVerifier 等のレジストリーで参照できます。
maxTotalConnections
null
Camel 2.14: コネクションマネージャーが持つ合計接続数。このオプションが設定されていない場合、Camel は代わりにコンポーネントの 設定を使用します。
connectionsPerRoute
null
Camel 2.14: ルートごとの最大接続数。このオプションが設定されていない場合、Camel は代わりにコンポーネントの 設定を使用します。
authenticationPreemptive
false
Camel 2.11.3/2.12.2: このオプションが true の場合、camel-http4 はプリエンプティブな Basic 認証をサーバーに送信します。
eagerCheckContentAvailable false Camel 2.15.3/2.16: コンシューマーのみ。Content-Length ヘッダーが 0 の場合、HTTP リクエストにコンテンツがあるかどうかを即時にチェックするかどうか。HTTP クライアントがストリームデータを送信しない場合に、この機能を有効にできます。
copyHeaders true Camel 2.16: true の場合、コピーストラテジーに従って OUT エクスチェンジヘッダーにコピーされます。false の場合、HTTP 応答からのヘッダーのみが含まれます(IN ヘッダーはコピーされません)。
okStatusCodeRange 200-299 Camel 2.16: 正常な応答と見なされるステータスコード。値は含まれます。範囲は、構文 from-to を使用して定義する必要があります。
ignoreResponseBody false Camel 2.16: true の場合、http プロデューサーは応答ボディーを読み取りせず、入力ストリームをキャッシュします。
以下の認証オプションを HttpEndpoint に設定できます。

基本認証およびプロキシーの設定

Before Camel 2.8.0
Expand
名前 デフォルト値 説明
username null 認証用のユーザー名。
password null 認証のパスワード。
domain null 認証用のドメイン名。
host null ホスト名の認証。
proxyHost null プロキシーのホスト名
proxyPort null プロキシーポート番号
proxyUsername null プロキシー認証用のユーザー名
proxyPassword null プロキシー認証のパスワード
proxyDomain null プロキシードメイン名
proxyNtHost null プロキシー Nt ホスト名
名前 デフォルト値 説明
authUsername null 認証用のユーザー名
authPassword null 認証のパスワード
authDomain null 認証のドメイン名
authHost null ホスト名の認証
proxyAuthHost null プロキシーのホスト名
proxyAuthPort null プロキシーポート番号
proxyAuthScheme null プロキシースキーム は、設定されていない場合は、エンドポイントからスキームをフォールバックし、使用します。
proxyAuthUsername null プロキシー認証用のユーザー名
proxyAuthPassword null プロキシー認証のパスワード
proxyAuthDomain null プロキシードメイン名
proxyAuthNtHost null プロキシー Nt ホスト名

メッセージヘッダー

Expand
名前 タイプ 説明
Exchange.HTTP_URI 文字列 呼び出す URI。エンドポイントに設定された既存の URI を直接上書きします。この URI は、呼び出す HTTP サーバーの URI です。セキュリティーなどのエンドポイントオプションを設定できる Camel エンドポイント URI とは異なります。このヘッダーは、HTTP サーバーの UTI のみをサポートしません。
Exchange.HTTP_PATH 文字列 リクエスト URI のパス。ヘッダーは HTTP_URI でリクエスト URI を構築するために使用されます。
Exchange.HTTP_QUERY 文字列 URI パラメーター。エンドポイントで直接設定された既存の URI パラメーターを上書きします。
Exchange.HTTP_RESPONSE_CODE int 外部サーバーからの HTTP 応答コード。OK の場合は 200 です。
Exchange.HTTP_RESPONSE_TEXT 文字列 外部サーバーからの HTTP 応答テキスト。
Exchange.HTTP_CHARACTER_ENCODING 文字列 文字エンコーディング。
Exchange.CONTENT_TYPE 文字列 HTTP コンテンツタイプ。は IN メッセージと OUT メッセージの両方で設定され、text/html などのコンテンツタイプを提供します。
Exchange.CONTENT_ENCODING 文字列 HTTP コンテンツエンコーディング。は IN メッセージと OUT メッセージの両方で設定され、gzip などのコンテンツエンコーディングを提供します。

メッセージボディー

Camel は外部サーバーからの HTTP 応答を OUT ボディーに保存します。IN メッセージからのヘッダーはすべて OUT メッセージにコピーされ、ルーティング中にヘッダーが保持されます。さらに、Camel は HTTP 応答ヘッダーと OUT メッセージヘッダーを追加します。

レスポンスコード

Camel は HTTP 応答コードに従って処理されます。
  • レスポンスコードは 100..299 の範囲にあり、Camel は応答の成功と見なします。
  • 応答コードは 300..399 の範囲にあり、Camel はこれをリダイレクト応答とみなし、その情報とともに HttpOperationFailedException を出力します。
  • 応答コードは 400+ で、Camel はこれを外部サーバーの障害と見なし、この情報とともに HttpOperationFailedException を出力します。
    throwExceptionOnFailure
    オプション throwExceptionOnFailurefalse に設定すると、失敗したレスポンスコードに対して HttpOperationFailedException が出力されないようにすることができます。これにより、リモートサーバーから応答を取得できるようになります。デモには、以下の例があります。

HttpOperationFailedException

この例外には、以下の情報が含まれます。
  • HTTP ステータスコード
  • HTTP ステータス行 (ステータスコードのテキスト)
  • サーバーがリダイレクトを返した場合は、場所をリダイレクトします
  • 応答ボディー( java.lang.String ) (サーバーがボディーを応答として提供)

GET または POST を使用した呼び出し

以下のアルゴリズムは、GET または POST HTTP メソッドを使用する必要があるかどうかを判断するために使用されます:1。ヘッダーで提供されるメソッドを使用します。2.クエリー文字列がヘッダーで提供される場合は GET。3.エンドポイントがクエリー文字列で設定されている場合の GET。4.送信するデータがある場合は POST します(null ではありません)。5.それ以外の場合は GET

HttpServletRequest および HttpServletResponse にアクセスする方法

注記 を使用すると、Camel 型コンバーターシステムを使用してこれら 2 つにアクセスできます。camel-jetty または camel-cxf エンドポイントの後には、プロセッサーからリクエストおよび応答を取得できます。
HttpServletRequest request = exchange.getIn().getBody(HttpServletRequest.class);
HttpServletRequest response = exchange.getIn().getBody(HttpServletResponse.class);
Copy to Clipboard Toggle word wrap

呼び出す URI の設定

HTTP プロデューサーの URI を直接エンドポイント URI として設定できます。以下のルートでは、Camel は HTTP を使用して外部サーバー oldhost に呼び出します。
from("direct:start")
	    .to("http4://oldhost");
Copy to Clipboard Toggle word wrap
同等の Spring の例:
<camelContext xmlns="http://activemq.apache.org/camel/schema/spring">
  <route>
    <from uri="direct:start"/>
    <to uri="http4://oldhost"/>
  </route>
</camelContext>
Copy to Clipboard Toggle word wrap
メッセージのキー Exchange.HTTP_URI でヘッダーを追加することで、HTTP エンドポイント URI を上書きできます。
from("direct:start")
  .setHeader(Exchange.HTTP_URI, constant("http://newhost"))
  .to("http4://oldhost");
Copy to Clipboard Toggle word wrap
上記のサンプルでは、エンドポイントが http4://oldhost で設定されていても、http://newhost を呼び出します。http4 エンドポイントがブリッジモードで動作している場合、Exchange.HTTP_URI のメッセージヘッダーを無視します。

URI パラメーターの設定

http プロデューサーは、HTTP サーバーに送信される URI パラメーターをサポートします。URI パラメーターは、エンドポイント URI で直接設定することも、メッセージ上でキー Exchange.HTTP_QUERY を持つヘッダーとして設定できます。
from("direct:start")
 .to("http4://oldhost?order=123&detail=short");
Copy to Clipboard Toggle word wrap
または、ヘッダーで提供されるオプション:
from("direct:start")
  .setHeader(Exchange.HTTP_QUERY, constant("order=123&detail=short"))
  .to("http4://oldhost");
Copy to Clipboard Toggle word wrap

http メソッド(GET/POST/PUT/DELETE/HEAD/OPTIONS/TRACE)を HTTP プロデューサーに設定する方法

HTTP4 コンポーネントは、メッセージヘッダーを設定して HTTP リクエストメソッドを設定する方法を提供します。以下に例を示します。
from("direct:start")
  .setHeader(Exchange.HTTP_METHOD, constant(org.apache.camel.component.http4.HttpMethods.POST))
  .to("http4://www.google.com")
  .to("mock:results");
Copy to Clipboard Toggle word wrap
メソッドは、文字列定数を使用して少し短くすることができます。
.setHeader("CamelHttpMethod", constant("POST"))
Copy to Clipboard Toggle word wrap
同等の Spring の例:
<camelContext xmlns="http://activemq.apache.org/camel/schema/spring">
  <route>
    <from uri="direct:start"/>
    <setHeader headerName="CamelHttpMethod">
        <constant>POST</constant>
    </setHeader>
    <to uri="http4://www.google.com"/>
    <to uri="mock:results"/>
  </route>
</camelContext>
Copy to Clipboard Toggle word wrap

クライアントタイムアウトの使用 - SO_TIMEOUT

HttpSOTimeoutTest ユニットテストを参照してください。

プロキシーの設定

HTTP4 コンポーネントは、プロキシーを設定する方法を提供します。
from("direct:start")
  .to("http4://oldhost?proxyAuthHost=www.myproxy.com&proxyAuthPort=80");
Copy to Clipboard Toggle word wrap
proxyAuthUsername および proxyAuthPassword オプションを使用したプロキシー認証にも対応しています。

URI の外部でプロキシー設定の使用

システムプロパティーの競合を回避するには、CamelContext または URI からのみプロキシー設定を設定できます。Java DSL:
 context.getProperties().put("http.proxyHost", "172.168.18.9");
 context.getProperties().put("http.proxyPort" "8080");
Copy to Clipboard Toggle word wrap
Spring XML
   <camelContext>
       <properties>
           <property key="http.proxyHost" value="172.168.18.9"/>
           <property key="http.proxyPort" value="8080"/>
      </properties>
   </camelContext>
Copy to Clipboard Toggle word wrap
Camel は最初に Java System または CamelContext プロパティーから設定を設定し、指定した場合はエンドポイントプロキシーオプションを設定します。そのため、エンドポイントオプションでシステムプロパティーを上書きできます。
Camel 2.8 には、使用するスキームを明示的に設定できる http.proxyScheme プロパティーもあります。

charset の設定

POST を使用してデータを送信する場合は、Exchange プロパティーを使用して charset を設定できます。
exchange.setProperty(Exchange.CHARSET_NAME, "ISO-8859-1");
Copy to Clipboard Toggle word wrap

スケジュールされたポーリングを使用したサンプル

この例では、Google ホームページを 10 秒ごとにポーリングし、そのページをファイル message.html に書き込みます。
from("timer://foo?fixedRate=true&delay=0&period=10000")
    .to("http4://www.google.com")
    .setHeader(FileComponent.HEADER_FILE_NAME, "message.html")
    .to("file:target/google");
Copy to Clipboard Toggle word wrap

エンドポイント URI からの URI パラメーター

この例では、完全な URI エンドポイントがあり、これは Web ブラウザーに入力した内容になります。当然ながら、複数の URI パラメーターは、Web ブラウザーと同じように & amp; 文字をセパレーターとして使用して設定できます。この場合、Camel は複雑ではありません。
// we query for Camel at the Google page
template.sendBody("http4://www.google.com/search?q=Camel", null);
Copy to Clipboard Toggle word wrap

メッセージの URI パラメーター

Map headers = new HashMap();
headers.put(Exchange.HTTP_QUERY, "q=Camel&lr=lang_en");
// we query for Camel and English language at Google
template.sendBody("http4://www.google.com/search", null, headers);
Copy to Clipboard Toggle word wrap
上記のヘッダー値では、先頭に ? を付け 、通常 & amp; 文字でパラメーターを分離することができることに注意してください。

レスポンスコードの取得

HTTP4 コンポーネントから HTTP 応答コードを取得するには、Exchange.HTTP_RESPONSE_CODE で Out メッセージヘッダーの値を取得します。
Exchange exchange = template.send("http4://www.google.com/search", new Processor() {
  public void process(Exchange exchange) throws Exception {
    exchange.getIn().setHeader(Exchange.HTTP_QUERY, constant("hl=en&q=activemq"));
  }
});
Message out = exchange.getOut();
int responseCode = out.getHeader(Exchange.HTTP_RESPONSE_CODE, Integer.class);
Copy to Clipboard Toggle word wrap

Cookie の無効化

Cookie を無効にするには、URI オプション httpClient.cookiePolicy=ignoreCookiesを追加して HTTP Client が Cookie を無視するように設定します。

高度な使用方法

HTTP プロデューサーをより詳細に制御する必要がある場合は、HttpComponent を使用する必要があります。ここで、さまざまなクラスを設定してカスタム動作を提供できます。

JSSE 設定ユーティリティーの使用

Camel 2.8 以降、HTTP4 コンポーネントは Camel JSSE 設定ユーティリティーを介して SSL/TLS 設定をサポートします。このユーティリティーは、作成する必要のあるコンポーネント固有のコードの量を大幅に減らし、エンドポイントおよびコンポーネントレベルで設定可能です。 以下の例は、HTTP4 コンポーネントの設定方法を示しています。Security Guide の Configuring Transport Security for Camel Components も参照してください

エンドポイントの Spring DSL ベースの設定

...
  <camel:sslContextParameters
      id="sslContextParameters">
    <camel:keyManagers
        keyPassword="keyPassword">
      <camel:keyStore
          resource="/users/home/server/keystore.jks"
          password="keystorePassword"/>
    </camel:keyManagers>
  </camel:sslContextParameters>...
...
  <to uri="https4://127.0.0.1/mail/?sslContextParametersRef=sslContextParameters"/>...
Copy to Clipboard Toggle word wrap

Apache HTTP クライアントを直接設定

基本的に camel-http4 コンポーネントは Apache HttpClient 上に構築されています。詳細は SSL/TLS のカスタマイズ を参照するか、org.apache.camel.component.http4.HttpsServerTestSupport unit test ベースクラスを確認してください。また、カスタムの org.apache.camel.component.http4.HttpClientConfigurer を実装して、完全な制御が必要な場合は、http クライアントでいくつかの設定を行うこともできます。
ただし、キーストアとトラストストアを指定する だけ の場合は、Apache HTTP HttpClientConfigurer でこれを行うことができます。以下に例を示します。
KeyStore keystore = ...;
KeyStore truststore = ...;

SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("https", 443, new SSLSocketFactory(keystore, "mypassword", truststore)));
Copy to Clipboard Toggle word wrap
次に、HttpClientConfigurer を実装するクラスを作成し、上記の例ごとにキーストアまたはトラストストアを提供する https プロトコルを登録する必要があります。次に、Camel ルートビルダークラスから、以下のようにフックできます。
HttpComponent httpComponent = getContext().getComponent("http4", HttpComponent.class);
httpComponent.setHttpClientConfigurer(new MyHttpClientConfigurer());
Copy to Clipboard Toggle word wrap
Spring DSL を使用してこれを実行する場合は、URI を使用して HttpClientConfigurer を指定できます。以下に例を示します。
<bean id="myHttpClientConfigurer"
 class="my.https.HttpClientConfigurer">
</bean>

<to uri="https4://myhostname.com:443/myURL?httpClientConfigurer=myHttpClientConfigurer"/>
Copy to Clipboard Toggle word wrap
上記のように HttpClientConfigurer を実装し、キーストアとトラストストアを設定すると問題なく機能します。

HTTPS を使用した gotchas の認証

エンドユーザーは、HTTPS での認証に問題があることを報告していました。この問題は最終的に、カスタム設定済みの org.apache.http.protocol.HttpContext を指定して解決されました。
1.HttpContexts の(Spring)ファクトリーを作成します。
public class HttpContextFactory {

  private String httpHost = "localhost";
  private String httpPort = 9001;

  private BasicHttpContext httpContext = new BasicHttpContext();
  private BasicAuthCache authCache = new BasicAuthCache();
  private BasicScheme basicAuth = new BasicScheme();

  public HttpContext getObject() {
    authCache.put(new HttpHost(httpHost, httpPort), basicAuth);

    httpContext.setAttribute(ClientContext.AUTH_CACHE, authCache);

    return httpContext;
  }

  // getter and setter
}
Copy to Clipboard Toggle word wrap
2.Spring アプリケーションコンテキストファイルで HttpContext を宣言します。
<bean id="myHttpContext" factory-bean="httpContextFactory" factory-method="getObject"/>
Copy to Clipboard Toggle word wrap
3.http4 URL のコンテキストを参照します。
<to uri="https4://myhostname.com:443/myURL?httpContext=myHttpContext"/>
Copy to Clipboard Toggle word wrap

異なる SSLContextParameters の使用

HTTP4 コンポーネントは、コンポーネントごとに org.apache.camel.util.jsse.SSLContextParameters の 1 つのインスタンスのみをサポートします。2 つ以上の異なるインスタンスを使用する必要がある場合は、以下のように複数の HTTP4 コンポーネントを設定する必要があります。この例は、それぞれ sslContextParameters プロパティーの独自のインスタンスを使用する 2 つのコンポーネントを示しています。
<bean id="http4-foo" class="org.apache.camel.component.http4.HttpComponent">
   <property name="sslContextParameters" ref="sslContextParams1"/>
   <property name="x509HostnameVerifier" ref="hostnameVerifier"/>
</bean>

<bean id="http4-bar" class="org.apache.camel.component.http4.HttpComponent">
   <property name="sslContextParameters" ref="sslContextParams2"/>
   <property name="x509HostnameVerifier" ref="hostnameVerifier"/>
</bean>
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat